假设我有以下代码:
Console.WriteLine("Value1: " + SomeEnum.Value1.ToString() + "\r\nValue2: " +
SomeOtherEnum.Value2.ToString());
编译器是否会将其优化为:
Console.WriteLine("Value1: " + SomeEnum.Value1 + "\r\nValue2: " +
SomeOtherEnum.Value2);
我已使用IL反汇编器进行了检查,发现调用了IL_005a: callvirt instance string [mscorlib]System.Object::ToString()
我不知道JIT是否会对此进行优化。
ToString()
只是为了少打几个字,但是一个朋友说这是不必要的开销,所以我在这里问一下,以消除任何疑虑。 - TheVillageIdiotValue1
是字符串类型时,JIT编译器可以优化对ToString
的调用。 - StevenToString()
的情况。哦,我的知识水平又膨胀了,哈哈哈。 - TheVillageIdiot