首先就是 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
沒有留言:
張貼留言