为什么我不能得到GetType()的MethodBody?

时间:2015-11-04 18:29:04

标签: c# .net reflection types

假设我有这句话:

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

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

1 个答案:

答案 0 :(得分:4)

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

来自C#规格10.6.7

  

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

Here更详细的答案。