web-dev-qa-db-ja.com

プライベート変数の定義に疑問符があるのはなぜですか?

MVVPパターンとそれをWPFで実装する方法についての記事を読んでいます。ソースコードには、疑問符が何を表しているのかわからない行が複数あります。

private DateTime? _value;

?定義の意味? VSのヘルプで見つけようとしましたが、失敗しました。

24
Booser

これはnull許容値です。構造体は、デフォルトではnull許容にすることはできず、値を持っている必要があるため、C#2.0では、Nullable<T>型が.NETFrameworkに導入されました。

C#はNullable<T>型を構文糖衣構文で実装します。これにより、型名の後に疑問符が付けられ、以前はnull許容ではなかった型がnull可能になります。

46
David Morton

つまり、タイプは Nullable です。

9
Anvaka

nullにすることはできません

DateTime                        
DateTime dt = null;   // Error: Cannot convert null to 'System.DateTime'
                         because it is a  non-nullable value type 

nullにすることができます

DateTime? / Nullable<DateTime>  
DateTime? dt = null;  // no problems
9
Asad

これはnull許容型であり、nullを割り当てることができます

6

これは、フィールドがNullable<DateTime>、つまりnullになる可能性のあるDateTimeであることを意味します

3
Thomas Levesque

プライベートDateTime? _value-_valueがnull許容であることを意味します。より良い説明については、このリンクをチェックしてください。

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

お役に立てれば。

ありがとう、ラジャ

3
Raja