У меня есть класс, содержащий ряд свойств, что-то вроде:Как представлять данные, которые не могут быть установлены
public class Update
{
public int Quantity { get; set; }
public decimal Price { get; set; }
public string Name { get; set; }
}
Каждый экземпляр Update
не обязательно иметь каждый набор свойств, а другая часть системы должны знать, какие были установлены, а какие нет.
Один из вариантов, который у меня есть, состоит в том, чтобы сделать все типы значений Nullable
, и поэтому значение null
будет представлять собой концепцию не заданной. Хотя это сработает, мне не очень нравится идея иметь некоторые свойства явно Nullable
(типы значений) и некоторые значения NULL в силу того, что они являются ссылочным типом. Определение класса выглядело бы уродливым, и я не уверен, что нулевая проверка является семантически лучшим подходом.
Я мог бы создать класс, очень похожий на Nullable<T>
, который не имеет ограничений на T
с IsSet
. Я предпочитаю эту возможность использовать Nullable
, но мне все же хотелось бы посмотреть, есть ли у кого альтернативное представление, которое лучше, чем предлагаемые мной варианты.
Зачем изобретать колесо? 'Nullable' - лучший подход здесь. –