C#3.0新特性隱式類(lèi)型化本地變量
關(guān)鍵字 var
在一個(gè)隱式類(lèi)型化的本地變量和聲明中,本地變量類(lèi)型的聲明過(guò)程是由
使用的表達(dá)式初始化變量來(lái)推斷的。當(dāng)一個(gè)本地變量聲明標(biāo)示為var作為
類(lèi)型并且沒(méi)有var類(lèi)型名稱(chēng)在范圍內(nèi),那么這個(gè)聲明被視作隱式類(lèi)型化的
本地變量聲明
簡(jiǎn)單的說(shuō)就是不定義變量的類(lèi)型,而是根據(jù)變量的賦值去判斷判斷變量的數(shù)據(jù)類(lèi)型。
注意:
. 聲明者必須包含一個(gè)構(gòu)造者
. 這個(gè)構(gòu)造器必須是一個(gè)表達(dá)式
. 在編譯時(shí)刻構(gòu)造器表達(dá)式的類(lèi)型不能為null類(lèi)型
. 如果本地變量包含多種構(gòu)造器,那么構(gòu)造器必須都具有相同的編譯時(shí)類(lèi)型
自動(dòng)屬性
允許避免手工聲明一個(gè)私有成員變量以及編寫(xiě)get/set邏輯,取而代之的是編譯器會(huì)自動(dòng)為你生成一個(gè)私有變量和默認(rèn)的get/set操作
對(duì)象初始化器和集合初始化器
. 可以與構(gòu)造函數(shù)一起使用
. 允許部分賦值
. 允許給internal成員賦值
. 構(gòu)造函數(shù)比對(duì)象初始化先執(zhí)行的
匿名類(lèi)型
. 允許建立新的操作符被用來(lái)作為匿名對(duì)象構(gòu)造器以建立匿名類(lèi)型的對(duì)象
. 匿名類(lèi)型是沒(méi)有類(lèi)類(lèi)型,直接繼承于object
分部方法
. 分部方法是一些方法,它使輕量級(jí)的事件
處理成為可行
. 在定義分部方法時(shí),值得注意的是:
1、分部方法必須聲明在分部類(lèi)型(partial class)中;
2、分部方法使用partial 修飾符;
3、分部方法并不是總有方法體(body,即方法的實(shí)現(xiàn));
4、分部方法必須返回void;
5、分部方法可以是靜態(tài)的(即使用static 修飾符);
6、分部方法可以包含參數(shù)(包括在參數(shù)中使用this、ref 和
params 修飾符,不支持out 修飾符可以使用ref 修飾符來(lái)代替它);
7、分部方法必須是私有方法(private)。
擴(kuò)展方法
. 擴(kuò)展方法(Extension method),可以對(duì)現(xiàn)有類(lèi)功能進(jìn)行
擴(kuò)充,從而使該類(lèi)型的實(shí)例具有更多的方法(功能)。
. Extension Method僅僅是看起來(lái)像是一個(gè)類(lèi)型的方法,但
其實(shí)質(zhì)上不是,它更像是靜態(tài)類(lèi)型的靜態(tài)方法,事實(shí)上,
它確實(shí)擁有靜態(tài)方法所具有的所有功能
. Extension Method的作用域是整個(gè)namespace可見(jiàn)的,并
且可以通過(guò)using namespace來(lái)導(dǎo)入其它命名空間中的
Extension Method
Lambdas和表達(dá)式樹(shù)
C#2.0 引入了匿名函數(shù),它允許代碼塊能夠被寫(xiě)成“內(nèi)聯(lián)”在代理值所
期望的地方。當(dāng)匿名函數(shù)提供功能性編程語(yǔ)言的巨大威力的同時(shí),匿名
函數(shù)的標(biāo)記也顯得相當(dāng)?shù)娜唛L(zhǎng)。Lambda表達(dá)式提供了更簡(jiǎn)明的功能性
標(biāo)記來(lái)書(shū)寫(xiě)匿名函數(shù)
--Lambda表達(dá)式書(shū)寫(xiě)為一組參數(shù)列表,緊接著=>標(biāo)記,然后跟隨某個(gè)
表達(dá)式或聲明塊
--Lambda表達(dá)式的參數(shù)可以是顯式的或者隱式的類(lèi)型。在一個(gè)顯式類(lèi)
型參數(shù)列表中,每個(gè)參數(shù)的類(lèi)型都必須顯式聲明。
--表達(dá)式樹(shù)允許lambda表達(dá)式能夠代表數(shù)據(jù)結(jié)構(gòu)替代表示為執(zhí)行代碼
查詢(xún)表達(dá)式
.查詢(xún)表達(dá)式提供了,語(yǔ)言集成化的標(biāo)記,
為了和那些關(guān)系型或者等級(jí)型查詢(xún)語(yǔ)言,
例如:SQL和Xquery相類(lèi)似的查詢(xún)
.查詢(xún)表達(dá)式以from語(yǔ)句開(kāi)始并且以select或
者group語(yǔ)句結(jié)束