.NET DateTime類型變量作為參數時設置默認值


一個小的 Tips.

.NET 中函數參數的默認值需要是編譯時常量。如果參數是引用類型,可以設置Null,如果是值類型,可以設置相應的編譯時常量,如整型可以用整數,但對於DateTime(結構體,值類型)想要設置默認類型時要如何處理?

通常情況下會給 DateTime 結構體默認當時時間,即 DateTime.Now,但 DateTime.Now 不是編譯時常量,因此無法通過編譯。

如以下代碼無法通過編譯:

public const DateTime defaultDateTime = DateTime.Now;

但可以通過設置 DateTime 類型參數為可空類型,給其默認參數為 null,並在函數中進行判斷賦值來實現,如下代碼:

static void TestMethod(DateTime? date = null)
{
    date = date ?? DateTime.Now; 
}

以上思路是將 DateTime 參數轉換為可空類型,並賦予默認值 null,然后在函數體內先判斷參數是否為空,如果為空則用 DateTime.Now 來賦值,否則使用參數值。

 

以上內容很簡單,只是覺得這個 Tips 很好玩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM