Как я могу проверить, является ли DateTime нулевым - PullRequest
1 голос
/ 08 апреля 2019

if (string.IsNullOrEmpty (value)) для строки, но каков код, чтобы проверить, является ли Datetime нулевым?

    private DateTime? _ReleaseDate;

    public DateTime? ReleaseDate
    {
        get
        {
            return _ReleaseDate;
        }
        set
        {
            if ()
            {

            }
            else
            {
                _ReleaseDate = value;
            }
        }
    }

Ответы [ 2 ]

5 голосов
/ 08 апреля 2019

Шаблон ValueType? является сокращением для Nullable<ValueType>.В вашем случае у вас есть Nullable<DateTime>.

. Как видно из документов, Nullable<ValueType> реализует свойство HasValue, так что вы можете просто проверить его так:

if (value.HasValue)
{

}
else
{

}

Если вы просто хотите установить значение по умолчанию, вы можете использовать GetValueOrDefault метод Nullable<T> и покончить с оператором if:

_ReleaseDate = value.GetValueOrDefault(DateTime.MinValue); // or whatever default value you want.
2 голосов
/ 08 апреля 2019

Для nullbale типов вы можете использовать HasValue или != null

Однако для вашего примера (с указанным кодом) у вас есть больше опций

public DateTime? ReleaseDate
{
    get
    {
        return _ReleaseDate;
    }
    set
    {
        // if value is null, then that's all good, _ReleaseDate will be null as well
        _ReleaseDate = value; 
    }
}

Или

public DateTime? ReleaseDate {get;set}

Единственная причина, по которой вам нужно сделать что-то похожее на приведенное ниже, - это когда у вас какое-то определенное поведение на нуле или иным образом

public DateTime? ReleaseDate
{
    get
    {
        return _ReleaseDate;
    }
    set
    {
        if (value.HasValue)
        {
            // has a value
        }
        else
        {
           // doesnt 
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...