close

布林值 (bool):bool 為 boolean 的別名。是用來存放 true (有)、false (無) 的變數,所以佔的記憶體位置很小,只佔 1 位元 (bit)。

在別的程式語言裡面,int 或 string 是可以轉換為 bool 的,例如:

C++:只要數值非零,皆為 true。(C++ 不熟...其他型態沒試過)

 
int i = 123; => true
int i = 1;   => true
int i = 0;   => false
 


PHP:只要數值非零或空 (null),皆為 true。

 
$i = 123;   => true
$i = 1;     => true
$s = "hi!"; => true 
$s = "";    => false
$i = 0;     => false
 

 

但是 C# 不行,例如:

 
int i = 123;
if ( i ) => 這是錯誤的, 這邊無法判斷 true 或 false,且編譯過不了
{
}

if ( i != 0 ) => 這才是正確做法, 使用者必須自己下判斷,去判斷是否為 0
{
}
 

 

 

------- 小技巧 -------

在程式中經常會用到很多的判斷,例如遊戲中要打副本時,需要去判斷玩家體力是否足夠、等級是否足夠、金錢是否足夠時,會這樣去判斷:

 
// 這邊會去檢查玩家的體力、等級、金錢是否足夠,條件滿足才可進行副本。
if ( (player.energy > 0) && (player.lv >= 10) && (player.money >= 100) )
{
    // 進入副本......
}

// 不過也有人會用排版的方式,去提高可讀性。
if ( (player.energy > 0) &&
     (player.lv >= 10) &&
     (player.money >= 100) )
{
    // 進入副本......
}
 


這裡其實就可以利用 bool 變數,去做處理,作法如下:

 
// 檢查體力是否足夠。
bool checkEnergy = (player.energy > 0);

// 檢查等級是否足夠。
bool checkLV = (player.lv >= 10);

// 檢查金錢是否足夠。
bool checkMoney = (player.money >= 100);

if ( checkEnergy && checkLV && checkMoney )
{
    // 進入副本......
}
 

如此一來,判斷式就可以清楚又明瞭了!就算不下註解,光看變數名稱,也可以知道該判斷式的用處是什麼了!

 

arrow
arrow
    文章標籤
    C# bool boolean 布林值
    全站熱搜

    岳 發表在 痞客邦 留言(0) 人氣()