C# default(T)關鍵字


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


免責聲明!

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



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