How does 'typeof' work?

后端 未结 1 788
天涯浪人
天涯浪人 2021-01-01 21:43

I am curious what the \"method body\" for typeof in C# would look like (pretty sure I can\'t get to it in reflector as it\'s a keyword not a method).

I am guessing i

相关标签:
1条回答
  • 2021-01-01 22:06

    If you do something like:

    Type t = typeof(string);
    

    Then the compiler compiles the typeof(string) bit to a ldtoken MSIL instruction and then calls Type.GetTypeFromHandle to get an instance of the Type class.

    Type.GetTypeFromHandle is implemented by the runtime (which is why it's marked with the "MethodImplOptions.InternalCall" attribute). You can look at the source code to mono for how it's actually implemented, but you basically have to understand the whole metadata system to understand how Type and friends works internally...

    0 讨论(0)
提交回复
热议问题