Csharp/C#教程:在C#中,`DateTime类型中的`?`是什么?`分享


在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 

如果xnull则求值为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; } } 

AgeDrinksRegularly可空类型的使用可以用来表明客户没有回答这些问题。

在这个例子中,你引用我会为LastLogon取一个null值来表示用户从未登录过。

上述就是C#学习教程:在C#中,`DateTime类型中的`?`是什么?`分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1000056.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐