2012-01-12 75 views
10

如何爲可爲空的日期時間創建setter和getter屬性。 例如:可以爲空的日期時間?

private DateTime mTimeStamp; 

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

是否爲空的屬性支持setter和getter或者我宣佈它公開?

private DateTime? mTimeStamp; 

public DateTime TimeStamp 
{ 

} 

回答

17

你可以做這個:

public DateTime? TimeStamp { get; set; } 

如果你與它有可能是因爲你只改變了相關部件的一個編譯器的麻煩 - 要麼private成員變量或屬性的數據類型。當然,它們需要匹配,並且自動屬性可以很好地處理它。

編輯只是爲了進一步澄清,DateTime?不僅僅是裝飾着?屬性 - 它是從完全DateTime不同DateTime?Nullable<DateTime>的縮寫,它是一個通用(Nullable<T>),它通過封裝通用參數T(它是一個struct),爲非引用類型提供可空支持。

+0

+1 「他們需要匹配」 和汽車性能的處理是很好的。 – phoog 2012-01-12 18:09:49

3

您可以創建以同樣的方式將財產作爲一個正常DateTime屬性:

public DateTime? TimeStamp { get; set; } 
2

可空日期時間是從一個普通的DateTime離散型,可以像任何其他類型的使用。所以,你的代碼將是:

private DateTime? mTimeStamp; 

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

這是相同的爲非null:

public DateTime? TimeStamp { get; set; }

您可以在上面的示例代碼替換DateTimeDateTime?(貌似代碼在您的文章底部丟失)。

2
private DateTime? mTimeStamp; 

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

,或者如果您使用的是.NET 3.0+

public DateTime? TimeStamp {get;set;} 
相關問題