gpt4 book ai didi

c# - 'typeof' 是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 07:57:02 25 4
gpt4 key购买 nike

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

我猜它等同于 GetType(魔术将符号转换为字符串)。

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

最佳答案

如果你这样做:

Type t = typeof(string);

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

Type.GetTypeFromHandle 由运行时实现(这就是它标有“MethodImplOptions.InternalCall”属性的原因)。您可以查看 mono 的源代码以了解它的实际实现方式,但您基本上必须了解整个元数据系统才能了解 Type 和 friend 在内部如何工作...

关于c# - 'typeof' 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3145930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com