Object.GetType()源代码

GLe*_*aTi 5 .net

如何object.GetType()在.NET中实现?

Cod*_*aos 6

它在运行时本身实现,因此没有C#源代码.

[MethodImpl(MethodImplOptions.InternalCall)]
public extern Type GetType();
Run Code Online (Sandbox Code Playgroud)

MethodImplOptions.InternalCall 用于在运行时本身内具有"神奇"实现的函数.

对于正常的.net实现,从关闭源代码开始,您将无法找到它.使用Rotor或Mono,您很可能会在他们的c/c ++运行时源代码中找到它们.

我假设它只是使用每个实例开头的标记指针来获取类信息,然后包含一个字段以获取托管Type实例,可能需要创建它.