Использование свойств с проверкой.Различные типы недвижимости и значения для проверки - PullRequest
0 голосов
/ 19 октября 2018

У меня есть класс DT.Мне нужно проверить значение поля («дата»: метод «установить») перед назначением.Я хочу сравнить дату инициализации поля и 01.01.2018.Я хочу иметь аргумент типа "строка" в DT.Как мне это сделать?Я должен создать новый метод?

public class DT
{
    private string data;        

    public string Name { get; set; }
    public string Data
    {
        get
        {
            return data;
        }
        set
        {                
            data = value;                
        }
    }

    public DT(string name, string data)
    {
        Name = name;
        Data = data;
    }
}

Если я взял:

if(DateTime.Parse(data) < DateTime.Parse("01.01.2018"))
......

Я получил ошибку System.ArgumentNullException ...

1 Ответ

0 голосов
/ 19 октября 2018

Конечно, вы можете иметь этот чек в set собственности.Вы хотели бы сделать что-то похожее на

public string Data
{
    get
    {
        return data;
    }
    set
    {                
        if(DateTime.Parse(value) < DateTime.Parse("01.01.2018"))
            data = value;      
    }
}

Я предполагаю, что data равно нулю в фрагменте if, который вы разместили.

В качестве предложения я бы сделалсвойство a DateTime вместо просто string, если это поле всегда равно DateTime.Дает вам небольшую дополнительную проверку типов вместо того, чтобы убедиться, что string в правильном формате.Также, если кто-то попытается установить для Data значение string, которое не может быть проанализировано как DateTime, это вызовет исключение прямо сейчас, что является еще одной причиной сделать поле `DateTime.

...