Почему там вопросительный знак на определении частной переменной?

Я читаю статью о Шаблоне MVVP и как реализовать его с WPF. В исходном коде существует несколько строк, где я не могу выяснить то, что обозначают вопросительные знаки в нем.

private DateTime? _value;

Что делает ? средний в определении? Я пытался найти его в справке из VS, но отказавший.

23
задан Jon Seigel 7 April 2010 в 02:49
поделиться

6 ответов

Это значение, допускающее значение NULL. Структуры по умолчанию не могут допускать значения NULL, они должны иметь значение, поэтому в C # 2.0 тип Nullable был введен в .NET Framework.

C # реализует тип Nullable с кусочком синтаксического сахара, который помещает вопросительный знак после имени типа, таким образом делая тип, ранее не допускавший значения NULL, допускал значение NULL.

46
ответ дан 29 November 2019 в 00:50
поделиться

Это означает, что поле является Nullable , то есть DateTime , которое может иметь значение NULL

3
ответ дан 29 November 2019 в 00:50
поделиться

Это означает, что тип Nullable .

9
ответ дан 29 November 2019 в 00:50
поделиться

не может быть нулевым

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
9
ответ дан 29 November 2019 в 00:50
поделиться

Это тип, допускающий значение NULL, вы можете присвоить ему значение NULL

{ {1}}
6
ответ дан 29 November 2019 в 00:50
поделиться

Приватное DateTime? _value - означает, что _value допускает значение NULL. проверьте эту ссылку для лучшего объяснения.

http://davidhayden.com/blog/dave/archive/2005/05/23/1047.aspx

Надеюсь, это поможет.

Спасибо, Раджа

3
ответ дан 29 November 2019 в 00:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: