什么是;日期时间;用C#表示什么意思?
我正在读一本.NET的书,在其中一个代码示例中,有一个带有此字段的类定义:什么是;日期时间;用C#表示什么意思?,c#,.net,datetime,syntax,nullable,C#,.net,Datetime,Syntax,Nullable,我正在读一本.NET的书,在其中一个代码示例中,有一个带有此字段的类定义: private DateTime? startdate 日期时间是什么意思?这是一个可空的日期时间?在基元类型/结构指示它是可空版本之后 DateTime是一个永远不能为null的结构。发件人: DateTime值类型表示日期和时间,其值范围为公元0001年1月1日午夜12:00:00(也称为普通纪元)到公元9999年12月31日下午11:59:59(C.E.) DateTime?可以为空。它相当于可为空的。您可以将“
private DateTime? startdate
日期时间是什么意思?这是一个可空的日期时间<代码>?在基元类型/结构指示它是可空版本之后 DateTime是一个永远不能为null的结构。发件人: DateTime值类型表示日期和时间,其值范围为公元0001年1月1日午夜12:00:00(也称为普通纪元)到公元9999年12月31日下午11:59:59(C.E.)
DateTime?
可以为空。它相当于可为空的DateTime
是一个struct
,而不是类
,所以当您声明该类型的字段或变量时,您会得到一个DateTime
对象,而不是引用
而且,与int
不能null
一样,这个DateTime
对象永远不能null
,因为它不是引用
添加问号会将其转换为,这意味着它要么是DateTime
对象,要么是null
DateTime?
是Nullable
的语法糖,其中本身就是一个structa?作为值类型的后缀,允许空赋值,这在其他方面是不可能的
表示一个对象,该对象的底层
类型是一种值类型,也可以是
分配了一个空引用
这意味着您可以这样写:
DateTime? a = null;
if (!a.HasValue)
{
a = DateTime.Now;
if (a.HasValue)
{
Console.WriteLine(a.Value);
}
}
DateTime?在语法上等同于Nullable它基本上为原语提供了一个额外的状态。它可以是一个值,也可以是null。它在不需要指定值的情况下非常有用。因此,您不必使用datetime.min或max,而可以将其赋值为null以表示无值。正如我们所知,datetime是一个结构,意味着datetime是一个值类型,因此您得到的是datetime对象,而不是引用,因为datetime不是一个类,声明该类型的字段或变量时,不能以null开头,因为值类型不接受null。与int不能为null的方式相同。所以DateTime对象永远不能为null,因为它不是引用
但有时我们需要可为null的变量或值类型的字段,这时我们使用问号使它们成为可为null的类型,以便它们允许为null
例如:-
约会时间?日期=空
智力?intvalue=null
在上面的代码中,变量date是DateTime的对象,或者为null。intvalue也是如此
public class ReportsMapper : CommonMapper
{
public DateTime? cb_Bill_From_Date { get; set; }
public DateTime? cb_Bill_To_Date { get; set; }
public DateTime? tff_Bill_From_Date { get; set; }
public DateTime? tff_Bill_To_Date { get; set; }
}
若您在过程中将DateTime声明为Null,那个么您会得到一个错误,说明DateTime对象永远不能为Null,所以您需要添加?在DateTime之后,也就是说DateTime可以为null
希望这有帮助 “基元”与“结构”不完全相同;此语法用于结构“DateTime?”在C#中是语法糖,用于等价的“Nullable”。可能与