带有问号的奇怪C#语法

带有问号的奇怪C#语法,c#,C#,下面的代码是什么意思 private enum E_Week { Mon = 0, Tue, . . . } 它是否等于以下代码?这里的“?”符号有什么作用 E_Week? week= null; E\u周?相当于Nullable 有关Nullable类型的详细信息,请参阅。您的代码使用的是所谓的。枚举非常类似于int或DateTime,它被称为“值类型”,需要始终具有某些值。可空类型允许您将值类型视为允许空值 例如,此代码无效,无法编译,因为枚举不能为null: E_We

下面的代码是什么意思

private enum E_Week
{
   Mon = 0,
   Tue,
   . . .
}
它是否等于以下代码?这里的“?”符号有什么作用

E_Week? week= null;

E\u周?
相当于
Nullable


有关
Nullable
类型的详细信息,请参阅。

您的代码使用的是所谓的。枚举非常类似于int或DateTime,它被称为“值类型”,需要始终具有某些值。可空类型允许您将值类型视为允许空值

例如,此代码无效,无法编译,因为枚举不能为null:

E_Week week= null;
但此代码是有效的:

E_Week week = null;
与此完全相同:

E_Week? week = null;
Nullable week=null;

最显著的区别是第二条语句不起作用;)这个符号基本上使您可以将值类型(在本例中为enum)设置为null,这通常是不可能的。

可能的重复项
Nullable<E_Week> week = null;