私は.NETの本を読んでいますが、コード例の1つに、このフィールドを持つクラス定義があります。
private DateTime? startdate
どういうDateTime?
意味ですか?
これはnull許容のDateTimeです。?
プリミティブ型/構造体がnull許容バージョンであることを示した後。
DateTimeは、nullになることのない構造です。MSDNから:
DateTime値タイプは、日付と時刻を表します。値の範囲は、0001年1月1日深夜12:00:00 Anno Domini、またはAD(西暦、またはCEとも呼ばれます)から9999年12月31日午後11:59:59までです。 AD(CE)
DateTime?
ただし、nullにすることができます。
? _ 値型の接尾辞として、他の方法では不可能なnull割り当てが可能になります。
http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx
基になる型がnull参照も割り当てることができる値型であるオブジェクトを表します。
これは、次のように記述できることを意味します。
DateTime? a = null;
if (!a.HasValue)
{
a = DateTime.Now;
if (a.HasValue)
{
Console.WriteLine(a.Value);
}
}
日付時刻?構文的にはNullable<DateTime>と同等です。
Nullable<DateTime>と同等です。「?」を追加できます 任意のプリミティブ型または構造体に。
基本的に、プリミティブの追加の状態を提供します。値にすることも、nullにすることもできます。これは、値を割り当てる必要がない状況で役立ちます。したがって、たとえばdatetime.minまたはmaxを使用する代わりに、nullを割り当てて値がないことを表すことができます。