假设我有以下代码:
Console.WriteLine("Value1: " + SomeEnum.Value1.ToString() + "\r\nValue2: " +
SomeOtherEnum.Value2.ToString());
将编译器优化为:
Console.WriteLine("Value1: " + SomeEnum.Value1 + "\r\nValue2: " +
SomeOtherEnum.Value2);
我已经用 IL Disassembler 检查了它,并且有调用
IL_005a: callvirt instance string [mscorlib]System.Object::ToString()
我不知道 JIT 是否对此进行了优化。