C#中的'?'运算符是什么?

9

可能是重复问题:
什么是 bool? 返回类型的含义?

我在一个类中遇到了以下属性

public long? EmployeeId { get; set; }

我在谷歌上搜了一下这个运算符,但没有结果。根据 MSDN MSDN 运算符,只有运算符 ?? 空合并运算符和 ?: 条件运算符。但是 ? 运算符呢?


2
这是一个可以为空的 long - PhoenixReborn
5个回答

14
在这种情况下,?不是运算符。它是写作更短的方式:Nullable<long> T?Nullable<T>(其中T是类型)完全相同。
它被称为可空类型(请参阅MSDN
它用于允许“非可空”类型(如intlongstruct)被赋予null值。
当需要可能无效状态的值类型时,或者数据从可能包含null值的数据库中检索时,它非常有用。

6

2

1

T?语法是System.Nullable的简写形式,其中T是值类型。这两种形式是可以互换的。

来源: 在这里查看


0

它使类型可空,这对于将 null 分配给结构体是必需的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接