我正在阅读一篇关于MVVP模式的文章以及如何使用WPF实现它.在源代码中有多行,我无法弄清楚它中的问号是什么.
private DateTime? _value;
Run Code Online (Sandbox Code Playgroud)
?定义中的含义是什么?我试图在VS的帮助下找到它,但失败了.
Dav*_*ton 46
这是一个可以为空的价值.默认情况下,结构不能为空,它们必须具有值,因此在C#2.0中,Nullable<T>类型被引入.NET Framework.
C#Nullable<T>使用一段语法糖来实现类型,它在类型名称后面放置一个问号,从而使之前不可为空的类型可以为空.
不能为空
DateTime
DateTime dt = null; // Error: Cannot convert null to 'System.DateTime'
because it is a non-nullable value type
Run Code Online (Sandbox Code Playgroud)
可以为null
DateTime? / Nullable<DateTime>
DateTime? dt = null; // no problems
Run Code Online (Sandbox Code Playgroud)