为什么可以';t我得到GetType()的MethodBody

本文关键字:GetType MethodBody 为什么 | 更新日期: 2023-09-27 18:20:44

假设我有这行:

MethodBody getTypeMethod = typeof(object).GetMethod("GetType").GetMethodBody();
// getTypeMethod is null

为什么getTypeMethod为空?如何获得GetType()方法的MethodBody

为什么可以';t我得到GetType()的MethodBody

您自己得到了答案,但只是为了确认,Object.GetType()是一个外部方法,并且外部方法没有指定方法体。

来自C#规范10.6.7

当方法声明包含extern修饰符时,该方法为据说是一种外部方法。实施外部方法通常使用C#以外的语言。因为外部方法声明没有提供实际实现外部方法的方法体仅由分号组成。

下面是更详细的答案。