开发者

Purpose of C# constructor extern modifier

开发者 https://www.devze.com 2022-12-21 20:43 出处:网络
What is the Purpose of C# constructor extern modifier? I know about usage of extern METHODS to invoke Win32 functions, but what about CONSTRUCTORS?

What is the Purpose of C# constructor extern modifier?

I know about usage of extern METHODS to invoke Win32 functions, but what about CONSTRUCTORS?

Please give the practical example.

Note this:

class MyClass
{
    public ext开发者_如何学Goern MyClass();
}


I believe one use/purpose of an extern ctor is to have the constructor implemented within the CLR itself. if you disassemble mscorlib.dll using Reflector and look at the System.String type, you'll see:

[MethodImpl(MethodImplOptions.InternalCall)]
public extern String(char[] value);

Which basically tells us that the (char[]) ctor for the string class is externally implemented, as part of the .net runtime.


The c# spec here indicates that apart from private, internal, protected and public, extern may be used and that this is standard external reference - see here. This to me says that the contstructor is linked into the class at a later time. Just like the PInvoke calls are. There's nothing, I'm guessing, stopping the c# compiler implementer allowing linking of external .net .modules containing said external constructors.

I cannot give an example, but I suspect one way woud be to implement the constructor in MC++, or in fact just a simple IL .module.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号