常量Int32.MaxValue在编译时存储,实际上您的
代码将在编译时转换为Convert.ToDouble(0x7FFFFFFF).等效的IL是:
ldc.i4 FF FF FF 7F
call System.Convert.ToDouble
此值也会保存,以便可以在运行时通过反射检索它.
但是,Convert.ToDouble是仅在运行时评估的函数.
正如minitech建议的那样,(double)Int32.MaxValue在编译时进行评估.等效的IL是:
ldc.r8 00 00 C0 FF FF FF DF 41