可为空的日期时间
本文关键字:日期 时间 | 更新日期: 2023-09-27 18:20:04
如何为可为空的日期时间创建 setter 和 getter 属性。例如:
private DateTime mTimeStamp;
public DateTime TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
可为空的属性是否支持setter和getter,或者我必须将其声明为公共?
private DateTime? mTimeStamp;
public DateTime TimeStamp
{
}
你可以这样做:
public DateTime? TimeStamp { get; set; }
如果您在使用编译器时遇到问题,可能是因为您只更改了其中一个关联部分 - private
成员变量或属性的数据类型。当然,它们需要匹配,并且自动属性可以很好地为您处理。
编辑 只是为了进一步澄清,DateTime?
不仅仅是用?
属性装饰的 - 它与DateTime
完全不同。 DateTime?
是 Nullable<DateTime>
的简写,它是一个泛型 (Nullable<T>
(,它通过包装泛型参数 T
来为非引用类型提供可为空的支持,这是一个struct
。
您可以采用与普通DateTime
属性相同的方式创建属性:
public DateTime? TimeStamp { get; set; }
您应该能够以这种方式使 DateTime 为空:
private DateTime? mTimeStamp;
public DateTime? TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
您也可以在其他类型上使用此修饰符。 在这里阅读: http://msdn.microsoft.com/en-us/library/1t3y8s4s%28v=VS.100%29.aspx
可为空的日期时间是常规日期时间的离散类型,可以像任何其他类型一样使用。 所以你的代码将是:
private DateTime? mTimeStamp;
public DateTime? TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
它与不可为空相同:
public DateTime? TimeStamp { get; set; }
您可以在顶部示例代码中将DateTime
替换为DateTime?
(看起来帖子底部缺少代码(。
private DateTime? mTimeStamp;
public DateTime? TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
或者,如果您使用的是 .NET 3.0+
public DateTime? TimeStamp {get;set;}