从特定条件的属性返回结果

时间:2018-10-04 10:04:49

标签: c# asp.net

我有一个datetime属性,想在特定条件下获取结果。

public DateTime Date { get; set; }

如果Date = DateTime.Min,则应返回空白,否则返回实际结果。因此,如何通过在get此处编写代码来从此属性获取它。 请帮帮我。

3 个答案:

答案 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)

C#中的

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();
    }
}