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

时间:2010-02-24 13:08:56

标签: c# nullable

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

private DateTime? _value;

?在定义中意味着什么?我试图在VS的帮助下找到它,但失败了。

6 个答案:

答案 0 :(得分:44)

这是一个可以为空的价值。默认情况下,结构不能为空,它们必须具有值,因此在C#2.0中,Nullable<T>类型被引入.NET Framework。

C#使用一段语法糖实现Nullable<T>类型,在类型名称后面放置一个问号,从而使以前不可为空的类型可为空。

答案 1 :(得分:8)

这意味着类型为Nullable

答案 2 :(得分:8)

不能为空

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

可以为null

DateTime? / Nullable<DateTime>  
DateTime? dt = null;  // no problems

答案 3 :(得分:5)

这是一个可以为空的类型,您可以为其指定空值

答案 4 :(得分:2)

这意味着该字段为Nullable<DateTime>,即DateTime可以为空

答案 5 :(得分:2)

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

http://davidhayden.com/blog/dave/archive/2005/05/23/1047.aspx

希望这有帮助。

谢谢, 拉加