我正在阅读一本.NET书籍,其中一个代码示例中有一个包含此字段的类定义:

private DateTime? startdate

DateTime?是什么意思?

推荐答案

因为DateTimestruct,而不是class,所以当你声明一个字段或变量时,你会得到DateTime object,而不是reference.

就像int不能是null一样,所以这个DateTime对象永远不能是null,因为它不是一个参考.

加上问号将其变成nullable type,这意味着either它是DateTime对象,or它是null.

DateTime?Nullable<DateTime>的句法糖,而Nullable本身就是struct.

.net相关问答推荐

ZstdNet库的问题:Src大小不正确,异常

.NET发布的应用程序运行与开发不同的端口

Docker镜像mcr.microsoft.com/dotnet/aspnet:8.0不能在Windows上构建

如何将 select 语句详细信息提取到不同的方法中仍然保持Eager 加载?

仅使用 .NET GetBytes 方法转换有效字节而不创建问号

为什么我在环境变量中有不同的值?

如何在 Windows 窗体上显示 ClickOnce 版本号

代码访问安全是否在任何现实世界中使用?

如何在 C# 中创建表达式树来表示String.Contains("term")?

在 C# DllImport 中使用 32 位或 64 位 dll

如何将字符串列表数据绑定到 WPF/WP7 中的 ListBox?

在 .NET 中计算目录大小的最佳方法是什么?

POCO 是什么意思?

为什么会出现编译错误使用未分配的局部变量?

错误 NU1605 检测到包降级

String.Join 与 StringBuilder:哪个更快?

如何从头开始以编程方式配置 log4net(无配置)

如何获取命名空间中的所有类?

例外:不支持 URI 格式

Linq Query 不断抛出无法创建 System.Object 类型的常量值......,为什么?