2012-01-12 21 views
10

nullable datetimeのsetterおよびgetterプロパティを作成する方法。 は、例えば:Null可能なDateTime?

private DateTime mTimeStamp; 

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

はNULL可能な属性はセッターとゲッターをサポートするか、私はそれが公共の宣言する必要がありますか?

private DateTime? mTimeStamp; 

public DateTime TimeStamp 
{ 

} 

答えて

17

メンバ変数、またはプロパティのデータ型。彼らはもちろん、一致する必要があり、あなたのために自動プロパティがそれをうまく処理します。ただ、さらに明確にする

EDITDateTime?は単に?属性で修飾されていない - それはDateTimeとは全く異なるです。 DateTime?は、汎用パラメータTstruct)をラップすることによって、非参照型に対してnull可能なサポートを提供する汎用(Nullable<T>)のNullable<DateTime>の省略形です。

+0

1を使用している場合。 – phoog

2

あなたはこのように日時が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

3

をあなたは、通常のDateTimeプロパティと同じようにプロパティを作成することができます

public DateTime? TimeStamp { get; set; } 
2

はNULL可能日時は、通常のDateTimeから離散型で、他のタイプと同じように使用することができます。だからあなたのコードは次のようになります。

public DateTime? TimeStamp { get; set; } 

をあなたが唯一の関連する部品の一つ変えので、あなたはそれはおそらくのコンパイラとのトラブルを抱えていた場合 - のいずれかprivateを:あなただけの代わりにこれを行うことができます

private DateTime? mTimeStamp; 

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

これは、非NULL可能と同じです:

public DateTime? TimeStamp { get; set; }

あなたのトップのサンプルコード(コードはあなたのポストの下部に欠けているように見える)にDateTime?DateTimeを置き換えることができます。

2
private DateTime? mTimeStamp; 

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

か、あなたは「それらが一致する必要がある」と自動プロパティはうまくそれを処理するための.NET 3.0+

public DateTime? TimeStamp {get;set;} 
関連する問題