C# 中问号的几种用法 在 C# 中 ? 有一些特殊用法。 1. 可空类型修饰符 T?引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如: 1234567891011string str = null; // 是正确的。int a = null; // 编译器将报错。int? b = null; // 是正确的。/*为了使值类型也可为空,可空类型出现了,可空类型使用可空类型修饰符 ? 来表示,表现形式为 T?。例:int? 表示是可空的整形,DateTime? 表示为可空的时间。T? 其实是 System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到 T? 时编译器在编译时会把 T? 编译成 System.Nullable<T> 的形式,例如:int?,编译后便是 System.Nullable<int> 的形式。*/ 2. 三元运算符表达式 ? :1int a = b ? c : d; // 如果 b 满足条件,则 a = c,否则 a = d。 3. 空合并运算符 ??1string a = b ?? c; // 如果 b != null 则 a = b,否则 a = c。 4. 对象后面的 ?12GameObject go = null;go?.SetActive(true); // 等价于 if (go != null) { go.SetActive(true); } CSharp CSharp Visual Studio 文件自动定位功能 上一篇 C# 构造方法继承 下一篇