C# 为什么私有变量定义上有问号?

C# 为什么私有变量定义上有问号?,c#,nullable,C#,Nullable,我正在读一篇关于MVVP模式以及如何用WPF实现它的文章。在源代码中有多行代码,我无法理解其中的问号代表什么 private DateTime? _value; 定义中的?是什么意思?我试图在VS的帮助中找到它,但失败。这意味着类型为 它是一个可为空的值。默认情况下,结构不能为Null,它们必须有一个值,因此在C#2.0中,nullable类型被引入.NET Framework C#用一块语法糖实现了Nullable类型,它在类型名称后面加了一个问号,从而使以前不可为null的类型可以为Nul

我正在读一篇关于MVVP模式以及如何用WPF实现它的文章。在源代码中有多行代码,我无法理解其中的问号代表什么

private DateTime? _value;

定义中的
是什么意思?我试图在VS的帮助中找到它,但失败。

这意味着类型为

它是一个可为空的值。默认情况下,结构不能为Null,它们必须有一个值,因此在C#2.0中,
nullable
类型被引入.NET Framework


C#用一块语法糖实现了
Nullable
类型,它在类型名称后面加了一个问号,从而使以前不可为null的类型可以为Nullable

这意味着该字段是一个可为空的,即可以为空的日期时间这是一个可为空的类型,您可以为其分配空值

私有日期时间_value-表示_值可为空。请查看此链接以获得更好的解释

希望这有帮助

谢谢, Raja

不能为空

DateTime                        
DateTime dt = null;   // Error: Cannot convert null to 'System.DateTime'
                         because it is a  non-nullable value type 
可以为空

DateTime? / Nullable<DateTime>  
DateTime? dt = null;  // no problems
DateTime?/可空
约会时间?dt=null;//没问题

我删除了WPF标签,因为它与WPF无关……谢谢您的回答。这不在msdn的indox中,这是很糟糕的。更具体地说,它可能是一个可空值类型的副本。