代码之家  ›  专栏  ›  技术社区  ›  MuKa Tigran

在父对象的null条件检查之后检查可为null的属性

  •  0
  • MuKa Tigran  · 技术社区  · 8 年前

    感谢有一些问题接近我要问的,但不太像这里。我一直在检查?。接线员和我遇到了以下场景。情况如下:

    internal class Dog
    {
       public int? Age { get; set; }
    }
    

    Dog d2 = new Dog() { Age = 10 };  
    int age1 = d2.Age.Value; // compiles okay
    int age2 = d2?.Age.Value; // CS0266
    

    我想知道为什么3岁的代码行要求显式转换。d2.int型年龄?和年龄。int类型的值在两种用法之间没有变化。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Paulo Morgado    8 年前

    使用空条件运算符后,结果值可以是 null int .

    int age2 = (d2?.Age).Value;