0
我有兩個 「Hello World」 的程序:C#編譯器是否默認優化程序?
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#編譯器默認默認?
你對優化標誌? – 2013-02-16 04:47:27
@KevinHikaruEvans nope,實際上在LinqPad上運行它,我希望如果C#編譯器默認會做一些事情! – 2013-02-16 04:48:16
第二個IL通常用於調試輸出。另外,如果程序沒有被調試,JIT可能會消除這種情況。 – leppie 2013-02-16 04:49:38