通常问号的主要用途是有条件的,x ? "yes" : "no"。
x ? "yes" : "no"
但是我已经看到了它的另一种用途,但例如找不到?操作符的这种用法的解释。
?
public int? myProperty { get; set; }
这意味着有问题的值类型是可为空的类型
Nullable 类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型的正确值范围,以及额外的空值。例如,a Nullable<Int32>,发音为“Nullable of Int32”,可以分配从 -2147483648 到 2147483647 的任何值,或者可以分配 null 值。Nullable<bool>可以为A分配值 true、false 或 null。当您处理包含可能未分配值的元素的数据库和其他数据类型时,将 null 分配给数字和布尔类型的能力特别有用。例如,数据库中的布尔字段可以存储值 true 或 false,或者它可能是未定义的。 class NullableExample { static void Main() { int? num = null; // Is the HasValue property true? if (num.HasValue) { System.Console.WriteLine("num = " + num.Value); } else { System.Console.WriteLine("num = Null"); } // y is set to zero int y = num.GetValueOrDefault(); // num.Value throws an InvalidOperationException if num.HasValue is false try { y = num.Value; } catch (System.InvalidOperationException e) { System.Console.WriteLine(e.Message); } } }
Nullable 类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型的正确值范围,以及额外的空值。例如,a Nullable<Int32>,发音为“Nullable of Int32”,可以分配从 -2147483648 到 2147483647 的任何值,或者可以分配 null 值。Nullable<bool>可以为A分配值 true、false 或 null。当您处理包含可能未分配值的元素的数据库和其他数据类型时,将 null 分配给数字和布尔类型的能力特别有用。例如,数据库中的布尔字段可以存储值 true 或 false,或者它可能是未定义的。
Nullable<Int32>
Nullable<bool>
class NullableExample { static void Main() { int? num = null; // Is the HasValue property true? if (num.HasValue) { System.Console.WriteLine("num = " + num.Value); } else { System.Console.WriteLine("num = Null"); } // y is set to zero int y = num.GetValueOrDefault(); // num.Value throws an InvalidOperationException if num.HasValue
is false try { y = num.Value; } catch (System.InvalidOperationException e) { System.Console.WriteLine(e.Message); } } }