Lee*_*son 7 .net c# optimization typeof
如果我要在同一类型上使用C#typeof调用的结果,是否值得保存该值,或者只是多次调用typeof().对我来说,多种类型是优选的,因为它可以更简洁,可读的代码.我想这取决于编译器是否会"内联"代码?
不,typeof()
是一个编译时关键字.
有可能是在保持的结果的小利object.GetType()
的Type
变量.
Type t = typeof(string);
Run Code Online (Sandbox Code Playgroud)
这就是这行编译的内容
IL_0000: nop
IL_0001: ldtoken [mscorlib]System.String
IL_0006: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_000b: stloc.0
IL_000c: ldloc.0
Run Code Online (Sandbox Code Playgroud)
所以在内部,它将使用GetTypeFromHandle
我想象的句柄,这是一个指向堆中类型位置的指针.
因此,调用它一次并保留参考值可能会有一点点好处,尽管它是微不足道的.