MONO.Cecil.Cil中OpCode的结构里的字段都是什么意思啊
谁能给我解释下
using System;
 
namespace Mono.Cecil.Cil
{
    public struct OpCode
    {
 
        public static bool operator !=(OpCode one, OpCode other);
        public static bool operator ==(OpCode one, OpCode other);
 
        public Code Code { get; }
        public FlowControl FlowControl { get; }
        public string Name { get; }
        public byte Op1 { get; }
        public byte Op2 { get; }
        public OpCodeType OpCodeType { get; }
        public OperandType OperandType { get; }
        public int Size { get; }
        public StackBehaviour StackBehaviourPop { get; }
        public StackBehaviour StackBehaviourPush { get; }
        public short Value { get; }
 
        public override bool Equals(object obj);
        public bool Equals(OpCode opcode);
        public override int GetHashCode();
        public override string ToString();
    }
}

解决方案 »

  1.   

    /// <summary>
    /// 操作码结构,存放一个IL操作码的信息
    /// </summary>
    public struct OpCode { /// <summary>
    /// 指令名称
    /// </summary>
    public string Name { get; } /// <summary>
    /// 指令字节数,1-单字节指令,2-双字节指令
    /// </summary>
    public int Size { get; } /// <summary>
    /// 指令码的第一字节(如果是0xFF则是单字节指令)
    /// </summary>
    public byte Op1 { get; } /// <summary>
    /// 指令码的第二字节(如果是单字节指令,就是该指令码)
    /// </summary>
    public byte Op2 { get; } /// <summary>
    /// 指令码(单字节指令高位为空)
    /// </summary>
    public short Value { get; } /// <summary>
    /// 指令名称(Code枚举类型的名称)
    /// </summary>
    public Code Code { get; } /// <summary>
    /// 该操作指令对控制流的影响
    /// </summary>
    public FlowControl FlowControl { get; } /// <summary>
    /// 操作指令的类型
    /// </summary>
    public OpCodeType OpCodeType { get; } /// <summary>
    /// 行内参数(in-line argument,即指令所带的内联参数)的类型
    /// </summary>
    public OperandType OperandType { get; } /// <summary>
    /// 执行指令时,将从栈上移除的数据项的数量及大小(用于该指令的计算)
    /// </summary>
    public StackBehaviour StackBehaviourPop { get; } /// <summary>
    /// 指令执行后,压栈的数据项数及大小(作为指令结果)
    /// </summary>
    public StackBehaviour StackBehaviourPush { get; } public override int GetHashCode();
    public override bool Equals (object obj);
    public bool Equals (OpCode opcode); /// <summary>
    /// 重载==操作符,判断两个操作码是否相同
    /// </summary>
    public static bool operator == (OpCode one, OpCode other); /// <summary>
    /// 重载!=操作符,判断两个操作码是否不同
    /// </summary>
    public static bool operator != (OpCode one, OpCode other); public override string ToString ();
    }