DateTime?
C#のaとa DateTime
(疑問符なし)の違いは何ですか?
3 に答える
値の型の後の疑問符は、Nullable<T>
構造の簡略表記です。
基になる型が参照型のように null を割り当てることもできる値型であるオブジェクトを表します。
このNullable<T>
構造により、値型 ( 、 、 など) をラップDateTime
しInt32
てGuid
、特定の点で参照型のように扱うことができます。(代入、持ち上げられた演算子などの点で) 少し複雑になるため、Nullable 型 (C# プログラミング ガイド)とその関連記事を読むことをお勧めします。
Null 許容型は構造体のインスタンスです
System.Nullable
。null 許容型は、基になる値の型の通常の値の範囲に加えて、追加の null 値を表すことができます。たとえばNullable<Int32>
、「Int32 の Nullable」と発音される には、-2147483648 ~ 2147483647 の任意の値を割り当てるか、null 値を割り当てることができます。ANullable<bool>
には、値 true または false、または null を割り当てることができます。数値型およびブール型に null を割り当てる機能は、値が割り当てられない要素を含むデータベースやその他のデータ型を扱う場合に特に便利です。たとえば、データベースのブール型フィールドには、値 true または false を格納できます。また、値が未定義の場合もあります。
DateTime?
とは対照的に、null にすることができますDateTime