Csharp/C#教程:‘typeof’如何运作?分享


‘typeof’如何运作?

我很好奇C#中typeof的“方法体”是什么样的(非常确定我无法在reflection器中找到它,因为它是关键字而不是方法)。

我猜它相当于GetType( 魔术转换符号到字符串 )。

在Reflector中查看GetType(字符串),它调用一个方法“PrivateGetType”,它调用“RuntimeTypeHandle.GetTypeByName”,而RuntimeTypeHandle似乎在其中有很多类型的逻辑,但GetTypeByName的东西没有显示在Reflector中。

如果您执行以下操作:

Type t = typeof(string); 

然后编译器将typeof(string)位编译为ldtoken MSIL指令,然后调用Type.GetTypeFromHandle以获取Type类的实例。

Type.GetTypeFromHandle由运行时实现(这就是为什么它用“MethodImplOptions.InternalCall”属性标记)。 您可以查看单声道的源代码以了解它的实际实现方式,但您基本上必须了解整个元数据系统,以了解Type和Friends如何在内部工作…

上述就是C#学习教程:‘typeof’如何运作?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/955322.html

(0)
上一篇 2021年11月21日
下一篇 2021年11月21日

精彩推荐