C# default關(guān)鍵字
要確定用于創(chuàng)建泛型類實(shí)例的類型,需要了解一個(gè)最基本的情況:它們是引用類型還是值類型。若不知道這個(gè)情況,就不能用下面的代碼賦予null值:
public MyGenericClass()
{
innerTlObject = null;
}
如果Tl是值類型,則innerTlObject不能取null值,所以這段代碼不會(huì)編譯。幸好,開(kāi)發(fā)人員考慮到了這個(gè)問(wèn)題,使用default關(guān)鍵字的新用法解決了它。這I新用法如下:
public MyGenericClass()
(
innarTlObject = default(Tl);
}
其結(jié)果是,如果innerTlObject是引用類型,就給它賦予null值;如果它是值類型,就給它賦予默認(rèn)值。對(duì)于數(shù)字類型,這個(gè)默認(rèn)值是0;而結(jié)構(gòu)根據(jù)其各個(gè)成員的類型,以相同的方式初始化為0或null。defcult關(guān)鍵字允許對(duì)必須使用的類型執(zhí)行更多操作,但為了更進(jìn)—步,還需要限制所提供的類型。
點(diǎn)擊加載更多評(píng)論>>