Nullable DateTime?

如何为可空日期时间创建setter和getter属性。 例如:

private DateTime mTimeStamp; public DateTime TimeStamp { get { return mTimeStamp; } set { mTimeStamp = value; } } 

可空属性是否支持setter和getter或者我是否将其声明为public?

 private DateTime? mTimeStamp; public DateTime TimeStamp { } 

你可以这样做:

 public DateTime? TimeStamp { get; set; } 

如果您遇到编译器问题,可能是因为您只更改了其中一个关联部分 – private成员变量或属性的数据类型。 当然,他们需要匹配和自动属性处理对你很好。

编辑只是为了进一步澄清, DateTime? 不仅仅是装饰着? 属性 – 它与DateTime 完全不同。 DateTime?Nullable简写,它是一个generics( Nullable ),它通过包装generics参数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

可空的DateTime是常规DateTime中的离散类型,可以像任何其他类型一样使用。 所以你的代码是:

 private DateTime? mTimeStamp; public DateTime? TimeStamp { get { return mTimeStamp; } set { mTimeStamp = value; } } 

它与不可空的相同:

public DateTime? TimeStamp { get; set; }

你可以用DateTime替换DateTime? 在您的顶部示例代码中(看起来您的post底部缺少代码)。

 private DateTime? mTimeStamp; public DateTime? TimeStamp { get { return mTimeStamp; } set { mTimeStamp = value; } } 

或者,如果您使用.net 3.0+

 public DateTime? TimeStamp {get;set;}