[英]Nullable DateTime?
如何為可為空的日期時間創建setter和getter屬性。 例如:
private DateTime mTimeStamp;
public DateTime TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
可空屬性是否支持setter和getter或者我是否將其聲明為public?
private DateTime? mTimeStamp;
public DateTime TimeStamp
{
}
你可以這樣做:
public DateTime? TimeStamp { get; set; }
如果您遇到編譯器問題,可能是因為您只更改了其中一個關聯部分 - private
成員變量或屬性的數據類型。 當然,他們需要匹配和自動屬性處理對你很好。
編輯只是為了進一步澄清, DateTime?
不僅僅裝飾着?
屬性 - 它與DateTime
完全不同。 DateTime?
是Nullable<DateTime>
簡寫,它是一個泛型( Nullable<T>
),它通過包裝泛型參數T
(一個struct
為非引用類型提供可為空的支持。
您可以使用與普通DateTime
屬性相同的方式創建屬性:
public DateTime? TimeStamp { get; set; }
您應該能夠以這種方式使DateTime可以為空:
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
可以為空的DateTime是常規DateTime中的離散類型,可以像任何其他類型一樣使用。 所以你的代碼是:
private DateTime? mTimeStamp;
public DateTime? TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
它與非可空的相同:
public DateTime? TimeStamp { get; set; }
你可以用DateTime
替換DateTime?
在您的頂部示例代碼中(看起來您的帖子底部缺少代碼)。
private DateTime? mTimeStamp;
public DateTime? TimeStamp
{
get { return mTimeStamp; }
set { mTimeStamp = value; }
}
或者,如果您使用.net 3.0+
public DateTime? TimeStamp {get;set;}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.