首先就是 bool 和 Boolean 之間的差異
查了一下 MSDN 的文獻
http://msdn.microsoft.com/en-us/library/c8f5xwh7(v=vs.71).aspx
The bool keyword is an alias of System.Boolean
也就是 bool 就只是 System.Boolean 的別名,是一樣的東西。
但是也有些人說者編譯器會將 bool 轉換成 Boolean,因此執行效率上會有差異?
寫了以下兩個程式來驗證看看:
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { bool x = true; Console.WriteLine(x); Console.Read(); } } }
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Boolean x = true; Console.WriteLine(x); Console.Read(); } } }
然後我們用 IL DASM 來觀看其代碼,會發現兩者產生的程式碼都是一樣的,因此不存在效率差異的問題。
.method private hidebysig static void Main(string[] args) cil managed { .entrypoint // 程式碼大小 17 (0x11) .maxstack 1 .locals init ([0] bool x) IL_0000: nop IL_0001: ldc.i4.1 IL_0002: stloc.0 IL_0003: ldloc.0 IL_0004: call void [mscorlib]System.Console::WriteLine(bool) IL_0009: nop IL_000a: call int32 [mscorlib]System.Console::Read() IL_000f: pop IL_0010: ret } // end of method Program::Main
沒有留言:
張貼留言