在C#中,`DateTime类型中的`?`是什么?`
我在使用System.DirectoryServices.AccountManagement时遇到了一些代码
public DateTime? LastLogon { get; }
是什么 ? 在DateTime之后。
我发现了一个参考? 运算符(C#参考) ,但它不是一回事。 (280Z28:这是使用Nullable Types的正确链接。)
的?
使它成为可空类型(它是Nullable
结构的简写,适用于所有值类型)。
可空类型(C#)
注意:
??
你链接到的是空合并运算符,它完全不同。
的?
在这种情况下,它不是运算符,它是类型的一部分。 语法
DateTime?
是的缩写
Nullable
所以它声明LastLogon
是一个将返回Nullable
的属性。 有关详细信息,请参阅MSDN 。
??
你链接到的地方在这里有点相关。 这是null-coalescing运算符,它具有以下语义。 表达方式
x ?? y
如果x
为null
则求值为y
,否则求值为x
。 这里x
可以是引用类型或可空类型。
简写
Nullable
它是Nullable
的快捷方式。 请注意,使用这些类型的方法无法向COM公开,因为它们使用generics,尽管它们看起来并非如此。
正如其他人提到的那样? 语法使类型为可空。
使用可空类型时要记住的几个关键事项(取自文档 ,但我认为在这里调用它们会很有帮助):
例如
int? num = null; if (num.HasValue == true) { System.Console.WriteLine("num = " + num.Value); }
例如
int? x = null; int y = x ?? -1;
正如其他人所说, ?
用于将值类型声明为可空 。
在以下几种情况下这很好:
例如,考虑一个用于表示被询问一组非强制性问题的客户反馈的类:
class CustomerFeedback { string Name { get; set; } int? Age { get; set; } bool? DrinksRegularly { get; set; } }
Age
和DrinksRegularly
可空类型的使用可以用来表明客户没有回答这些问题。
在这个例子中,你引用我会为LastLogon
取一个null
值来表示用户从未登录过。
上述就是C#学习教程:在C#中,`DateTime类型中的`?`是什么?`分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1000056.html