2014-02-09 31 views
-2

当我看着OpCodes类的源代码时,我注意到一些奇怪的东西。OpCode构造函数在哪里?

OpCodes类包含OpCode struct类型。例如一些静态只读域:

public static readonly OpCode Nop = new OpCode(OpCodeValues.Nop, 6556325); 

,创建一个新的OpCode并向其传递两个参数。但是当我看OpCode结构我找不到它有两个parameter.Instead任何构造函数只有一个internal构造函数,它看起来像这样:

internal OpCode(String stringname, 
        StackBehaviour pop, 
        StackBehaviour push, 
        OperandType operand, 
        OpCodeType type, 
        int size, byte s1, byte s2, 
        FlowControl ctrl, 
        bool endsjmpblk, int stack) 

至于我可以看有没有可选参数这里。

那么构造函数在哪里呢?有一个不可见的构造函数吗?

注:我使用.NET Reflector

回答

4

发现显然,你正在寻找在2.0版本的mscorlib的。该版本具有带有11参数构造函数的OpCode结构。 mscorlib的较新版本(至少4.0版本)包含仅包含2个参数的OpCode构造函数

3

我想你找错了地方。

enter image description here

mscorlib.System.Reflection.Emit.OpCode(使用ILSpy)

相关问题