我有一个datetime属性,想在特定条件下获取结果。
public DateTime Date { get; set; }
如果Date = DateTime.Min,则应返回空白,否则返回实际结果。因此,如何通过在get此处编写代码来从此属性获取它。 请帮帮我。
答案 0 :(得分:1)
您将需要实现一个后备字段,以便能够与DateTime.MinValue
进行比较。
此外,由于您希望返回“ nothing”,因此可以将属性的类型更改为可为null的DateTime(DateTime?
或Nullable<DateTime>
)。
目标实现如下所示:
private DateTime? dt;
public DateTime? Date
{
get => dt == DateTime.MinValue ? null : dt;
set => dt = value;
}
答案 1 :(得分:0)
DateTime
不能为空。您可以使用以下语法返回null
。
private DateTime? date
public DateTime? Date
{
get
{
if(date == DateTime.Min)
{
return null;
}
return date;
}
set
{
date = value;
}
}
答案 2 :(得分:0)
您应该将DateTime定义为Nullable。说空白有点模棱两可。您可以返回null并定义其他属性,以支持返回空字符串,例如;
private DateTime? _dt;
public DateTime? Date
{
get
{
if (!this._dt.HasValue)
return null;
return this._dt.Value == DateTime.MinValue ? null : this._dt;
}
set
{
this._dt = value;
}
}
public string DateAsString
{
get
{
if (!this._dt.HasValue)
return string.Empty;
return this._dt.Value == DateTime.MinValue ? string.Empty : this._dt.Value.ToString();
}
}