Я читаю статью о Шаблоне MVVP и как реализовать его с WPF. В исходном коде существует несколько строк, где я не могу выяснить то, что обозначают вопросительные знаки в нем.
private DateTime? _value;
Что делает ?
средний в определении? Я пытался найти его в справке из VS, но отказавший.
Это значение, допускающее значение NULL. Структуры по умолчанию не могут допускать значения NULL, они должны иметь значение, поэтому в C # 2.0 тип Nullable
был введен в .NET Framework.
C # реализует тип Nullable
с кусочком синтаксического сахара, который помещает вопросительный знак после имени типа, таким образом делая тип, ранее не допускавший значения NULL, допускал значение NULL.
Это означает, что поле является Nullable
, то есть DateTime
, которое может иметь значение NULL
не может быть нулевым
DateTime
DateTime dt = null; // Error: Cannot convert null to 'System.DateTime'
because it is a non-nullable value type
может быть нулевым
DateTime? / Nullable<DateTime>
DateTime? dt = null; // no problems
Это тип, допускающий значение NULL, вы можете присвоить ему значение NULL
{ {1}}Приватное DateTime? _value - означает, что _value допускает значение NULL. проверьте эту ссылку для лучшего объяснения.
http://davidhayden.com/blog/dave/archive/2005/05/23/1047.aspx
Надеюсь, это поможет.
Спасибо, Раджа