簡體   English   中英

Nullable DateTime?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM