C# 設定DateTime類型的變數值等於Null

來源:互聯網
上載者:User

做一個項目時,有個日期欄位客戶可輸入可不輸入值,直接把DateTime=Null時會出錯,提示錯誤:

      無法將 NULL 轉換成"System.DateTime",因為它是一種實值型別 

在網上查看下相關資料後,找到處理辦法:

Nullable<DateTime> now = DateTime.Now;
Nullable<DateTime> now = null;
當然也可以縮寫:
DateTime? now = DateTime.Now;
DateTime? now = null;
我們可以直接對now賦值,但實際上是給now.Value賦值。

既然可以為空白,就涉及到判斷了,以下兩種方式都是可行的:
if (now != null) {}
if (now.HasValue()) {}
有一點需要注意的是,實值型別可以通過這種方法變成參考型別,但是參考型別不可以喲。比如下面這段代碼:
Nullable<string> test = "test";
這段代碼編譯無法通過,會報出以下異常:
錯誤 1 類型“string”必須是不可為空白的實值型別才能用作泛型型別或方法“System.Nullable<T>”中的參數“T”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.