我有两个“Hello World”程序:
static void Main(string[] args) {
Console.WriteLine("Hello World");
}
和
static void Main(string[] args) {
string hw = "Hello World";
Console.WriteLine(hw);
}
并且为这些中的每一个生成的 IL 代码是:
IL_0001: ldstr "Hello World"
IL_0006: call System.Console.WriteLine
和
IL_0001: ldstr "Hello World"
IL_0006: stloc.0 // hw
IL_0007: ldloc.0 // hw
IL_0008: call System.Console.WriteLine
我的问题是,为什么 C# 编译器默认不优化这个?