在C++中,bool類型的值可轉換為int類型的值,false等效於零值,而true等效於非零值。但是在C#語言中,不存在bool類型與其他類型之間的相互轉換。例如,下列if語句在C#中是非法的,而在C++中則是合法的:
int x = 123;
if (x) // 注意:在C#中此語句是錯誤的
{
printf("x is 非零值.");
}
若要測試int類型的變量,必須將該變量與一個值(例如零)進行顯式比較,如下所示:
int x = 123;
if (x != 0) // C#的判斷方式
{
Console.Write("The value of x is nonzero.");
}
功能說明:從鍵盤輸入一個字符,然後程序檢查輸入的字符是否是一個字母。如果輸入的字符是字母,則程序檢查是大寫還是小寫。這些檢查是使用IsLetter和IsLower(兩者均返回bool類型)來執行的。
using System;
public class BoolTest1
{
static void Main()
{
Console.Write("請輸入一個字母: ");
char c = (char)Console.Read();
if (Char.IsLower(c))
{
Console.WriteLine("這個字符是小寫字母.");
}
else
{
Console.WriteLine("這個字符是大寫字母.");
}
}
}
存在從byte到short、ushort、int、uint、long、ulong、float、double或decimal的預定義隱式轉換。
注意
不能將更大存儲范圍的非文本數值類型隱式轉換為byte。
如:byte z = x + y;
以上的賦值語句將產生一個編譯錯誤,原因是賦值運算符右側的算術表達式在默認情況下的計算結果為int類型。
若要解決此問題,請使用強制轉換:
byte z = (byte)(x + y);