C#构造函数extern修饰符的用途
C#构造函数extern修饰符的用途是什么?
我知道使用extern METHODS来调用Win32函数,但是CONSTRUCTORS呢?
请举出实际例子。
请注意:
class MyClass { public extern MyClass(); }
我相信extern ctor的一个用途/目的是让构造函数在CLR本身内实现。 如果你使用Reflector反汇编mscorlib.dll并查看System.String类型,你会看到:
[MethodImpl(MethodImplOptions.InternalCall)] public extern String(char[] value);
这基本上告诉我们字符串类的(char [])ctor是外部实现的, 作为.net运行时的一部分 。
这里的c#规范表明除了私有,内部,受保护和公共外,可以使用extern ,这是标准的外部引用 – 请参见此处 。 这对我来说,contstructor会在以后链接到class级。 就像PInvoke调用一样。 我猜,没有什么可以阻止c#编译器实现者允许链接包含所述外部构造函数的外部.net .modules。
我不能举一个例子,但我怀疑在MC ++中实现构造函数的方法有点,或者实际上只是一个简单的IL .module。