web-dev-qa-db-ja.com

Nullable DateTime?

null許容日時のセッターおよびゲッタープロパティを作成する方法。例えば:

private DateTime mTimeStamp;

public DateTime TimeStamp
{
      get { return mTimeStamp; }
      set { mTimeStamp = value; }
}

Null許容属性はsetterとgetterをサポートしていますか、それともパブリックとして宣言する必要がありますか?

private DateTime? mTimeStamp;

public DateTime TimeStamp
{

}
12
hazem

代わりにこれを行うことができます:

public DateTime? TimeStamp { get; set; }

コンパイラで問題が発生した場合は、関連する部分の1つ(privateメンバー変数またはプロパティのデータ型)のみを変更したことが原因である可能性があります。もちろん、それらは一致する必要があり、自動プロパティはそれをうまく処理します。

[〜#〜] edit [〜#〜]さらに明確にするために、DateTime?は単に?属性で装飾されているだけではありません-それはDateTimeとはまったく異なりますDateTime?Nullable<DateTime>の省略形です。これは、Tである汎用パラメーターstructをラップすることにより、非参照型にnull許容サポートを提供する汎用( Nullable<T> )です。 。

18
Yuck

通常のDateTimeプロパティと同じ方法でプロパティを作成できます。

public DateTime? TimeStamp { get; set; }
3
John Kalberer

この方法でDateTimeをnull許容にすることができるはずです。

private DateTime? mTimeStamp;

public DateTime? TimeStamp
{
      get { return mTimeStamp; }
      set { mTimeStamp = value; }
}

この修飾子は他のタイプでも使用できます。ここを読んでください: http://msdn.Microsoft.com/en-us/library/1t3y8s4s%28v=VS.100%29.aspx

2
Abe Miessler

Null許容のDateTimeは、通常のDateTimeとは別の型であり、他の型と同じように使用できます。したがって、コードは次のようになります。

private DateTime? mTimeStamp;

public DateTime? TimeStamp
{
      get { return mTimeStamp; }
      set { mTimeStamp = value; }
}
2
Kirk Woll

これは、null許容でないものと同じです。

public DateTime? TimeStamp { get; set; }

上位のサンプルコードでDateTimeDateTime?に置き換えることができます(投稿の下部にコードがないようです)。

2
Cymen
private DateTime? mTimeStamp;

public DateTime? TimeStamp
{
  get { return mTimeStamp; }
  set { mTimeStamp = value; }
}

または、.net3.0以降を使用している場合

public DateTime? TimeStamp {get;set;}
2
Jason Meckley