bool 唯一目的:表示邏輯真/假。C# 採嚴格二值制:
true:真false:假底層儲存通常為 1 位元(實際佔 1 位元組對齊)。
| 特性 | C/C++ | C# |
|---|---|---|
| 假值表示 | 0 | false(關鍵字) |
| 真值表示 | 非 0 任意值 | true(關鍵字) |
| 整數隱性轉換 | 允許 | 禁止 |
| 指標/位元運算 | 常用於布林 | 不支援 |
bool x = 1; // ❌ 編譯錯誤:無法將 int 隱性轉換為 bool
bool y = true; // ✅ 正確
bool z = (5 > 3); // ✅ 比較運算回傳 bool
int i = 1;
if (i) { } // ❌ 編譯錯誤:if 條件必須為 bool
if (i != 0) { } // ✅ 明確比較
!= 0、== null、.Any())Nullable<bool> (bool?) 表達三態邏輯(真/假/未知)
// 比較運算
bool isAdult = age >= 18;
// 邏輯運算
bool canAccess = isAuthenticated && hasPermission;
// 三元運算
string status = isOnline ? "線上" : "離線";
// Nullable 三態
bool? userConfirmed = null; // 未決定
if (userConfirmed == true) { /* 確認 */ }
else if (userConfirmed == false) { /* 拒絕 */ }
else { /* 待定 */ }
bool[] 位元級壓縮(BitArray 更高效)BOOL (4 位元組),需 [MarshalAs(UnmanagedType.Bool)]C# bool 以嚴格型別安全取代 C/C++ 鬆散慣例,編譯期攔截隱性轉換錯誤,配合 bool? 完整表達三態邏輯,是現代語言布林型別設計典範。