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。