C#關鍵詞default函數,default(T)可以得到該類型的默認值.
C#在類初始化時,會給未顯示賦值的字段、屬性賦上默認值,但是值變量卻不會。
值變量可以使用默認構造函數賦值,或者使用default(T)賦值。
默認構造函數是通過 new 運算符來調用的,如下所示:
int myInt = new int();
default(T)如下所示:
int myInt = default(int);
以上語句同下列語句效果相同:
int myInt = 0;
請記住:在 C# 中不允許使用未初始化的變量。
default(T)得到的默認值參考表:
值類型 默認值
bool false
byte 0
char ‘\0’
decimal 0.0M
double 0.0D
enum 表達式 (E)0 產生的值,其中 E 為 enum 標識符。
float 0.0F
int 0
long 0L
sbyte 0
short 0
struct 將所有的值類型字段設置為默認值並將所有的引用類型字段設置為 null 時產生的值。
uint 0
ulong 0
ushort 0
引用類型 null
之所以會用到default關鍵字,是因為需要在不知道類型參數為值類型還是引用類型的情況下,為對象實例賦初值。考慮以下代碼:
class TestDefault<T>
{
public T foo()
{
T t = null; //???
return t;
}
}
如果我們用int型來綁定泛型參數,那么T就是int型,那么注釋的那一行就變成了 int t = null;顯然這是無意義的。為了解決這一問題,引入了default關鍵字:
class TestDefault<T>
{
public T foo()
{
return default(T);
}
}
————————————————
版權聲明:本文為CSDN博主「LixiSchool」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lizhenxiqnmlgb/java/article/details/81476115