public class Program
{
public static void Main(string[] args)
{
char x = 'A';
int i = 0;
Console.WriteLine (true ? x : 0);
Console.WriteLine(false ? i : x);
}
}
我在Google上找不到任何东西,请有人说明为什么输出为65,65
因为char
就是数字,更确切地说是带符号的int
。字符“ A”具有ASCII码65。
由于任何char
都可以隐式转换为int
,因此您的三元只返回int
,在您的情况下为65
。
A是ASCII编码的65。三元运算符实际上是在输出A的char值,在这种情况下为65。
三元运算符本质上是if else
语句。因此,由于x在三进制的真实部分中,因此Console.WriteLine (true ? x : 0);
将输出65。 Console.WriteLine(false ? i : x);
也将输出65,因为x在三进制的false(其他)部分中]