我正在做一些编码面试练习题,但我不知道为什么这个问题的答案是65,65

问题描述 投票:0回答:1
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

c# ternary
1个回答
1
投票

因为char就是数字,更确切地说是带符号的int。字符“ A”具有ASCII码65。

由于任何char都可以隐式转换为int,因此您的三元只返回int,在您的情况下为65


1
投票

A是ASCII编码的65。三元运算符实际上是在输出A的char值,在这种情况下为65。

三元运算符本质上是if else语句。因此,由于x在三进制的真实部分中,因此Console.WriteLine (true ? x : 0);将输出65。 Console.WriteLine(false ? i : x);也将输出65,因为x在三进制的false(其他)部分中]

© www.soinside.com 2019 - 2024. All rights reserved.