C# defualt關鍵字默認值用法
阿新 • • 發佈:2018-04-16
內容 dia code log doc www. ons alt AR 原文:C# defualt關鍵字默認值用法 。 對於可為 NULL 的值類型,
float fValue = default(float);
decimal dValue = default(decimal);
Console.Write("值類型測試:");
Console.WriteLine("{0},{1},{2}", iValue, fValue, dValue);
string strValue = default(string);
DateTime? dt = default(DateTime?);
User user = default(User);
Console.Write("引用類型測試:");
Console.WriteLine("{0},{1},{2}", (null == strValue), (null == user), (null == dt));
Console.WriteLine(); 運行結果:
默認值表達式生成類型的默認值。 默認值表達式在泛型類和泛型方法中非常有用。 使用泛型類和泛型方法時出現的一個問題是,如何在無法提前知道以下內容的情況下將默認值賦值給參數化類型 T
:
T
是引用類型還是值類型。- 如果
T
是值類型,它是數值還是用戶定義的結構。
已知參數化類型 T
的變量 t
,僅當 T
為引用類型時,語句 t = null
才有效。 賦值 t = 0
僅對數值類型有效,對結構無效。 解決方案是使用默認值表達式,該表達式對引用類型(類類型和接口類型)返回 null
,對數值類型返回零。 對於用戶定義的結構,返回初始化為零位模式的結構,該結構根據成員是值還是引用類型,為每個成員生成 0 或 null
default
返回像任何結構一樣初始化的System.Nullable<T>。
default(T)
表達式不限於泛型類和泛型方法。 默認值表達式可用於任何托管類型
以上內容來自MSDN。
示例代碼: int iValue = default(int);float fValue = default(float);
decimal dValue = default(decimal);
Console.Write("值類型測試:");
Console.WriteLine("{0},{1},{2}", iValue, fValue, dValue);
string strValue = default(string);
DateTime? dt = default(DateTime?);
User user = default(User);
Console.Write("引用類型測試:");
Console.WriteLine("{0},{1},{2}", (null == strValue), (null == user), (null == dt));
Console.WriteLine(); 運行結果:
C# defualt關鍵字默認值用法