欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
初探C#3.0

C#3.0已經(jīng)推出好一段時(shí)間了,由于種種原因,一直沒(méi)有去學(xué)習,這兩天在園子中看到老趙的拯救C# 2.0,但是我們真做的到嗎?。里面提到了些C#3.0的新特性和優(yōu)勢。勾起了我對3.0的興趣,初探學(xué)習一下,分享給新手。

在C#2.0中,微軟給我們帶來(lái)了一些新的特性,例如泛型,匿名委托等。然而,這些新的特性多多少少會(huì )給人一種從別的語(yǔ)言中“抄”來(lái)的感覺(jué)(例如泛型類(lèi)似C++的模板,一些特性類(lèi)似Java中的一些東西)。但是在C#3.0中,微軟給我帶來(lái)的一些新特性可能是以前所有開(kāi)發(fā)語(yǔ)言都沒(méi)有的特性。這無(wú)疑大大的體現了C#3.0在開(kāi)發(fā)語(yǔ)言中強大的優(yōu)勢。

Lambda表達式

Lambda 表達式是一個(gè)匿名函數,它可以包含表達式和語(yǔ)句,并且可用于創(chuàng )建委托或表達式目錄樹(shù)類(lèi)型。所有 Lambda 表達式都使用 Lambda 運算符 =>。關(guān)于Lambda更詳細的講解大家可以參看 MSDN。里面說(shuō)的很清楚。

這里簡(jiǎn)單舉個(gè)例子來(lái)說(shuō)明Lambda的好處。Lambda在對匿名委托的處理上提供了更清楚的實(shí)施方式。例如我們可以寫(xiě)這樣的代碼:

Code

在 C# 中將 Func<(Of <(T, TResult>)>) 委托與匿名方法一起使用。

在3.0中,我們可以使用Lambda來(lái)更清楚的進(jìn)行參數的傳遞:

Code

Lambda 表達式的基礎類(lèi)型是泛型 Func 委托之一。這樣能以參數形式傳遞 lambda 表達式,而不用顯式將其分配給委托。尤其是,因為 System.Linq 命名空間中許多類(lèi)型方法具有 Func<(Of <(T, TResult>)>) 參數,因此可以給這些方法傳遞 lambda 表達式,而不用顯式實(shí)例化 Func<(Of <(T, TResult>)>) 委托。這樣可以使我們的代碼更加簡(jiǎn)潔,邏輯上更易于理解。 

對象的初始化

在C#中,對象的初始化也做了一些改進(jìn)。一個(gè)新的功能就是提供了更方便的語(yǔ)法規則來(lái)聲明變量的值。

假如我們聲明一個(gè)Student對象:

Code

在C#2.0中,我們是這樣聲明變量并賦值的:

Student stu = new Student();
        stu.StuName 
= "Brian";
        stu.StuAge 
= "21";
        stu.StuClass 
= "1班";

而在C#3.0中,我們可以這樣初始化對象:

Student stu2 = new Student 
        {
            StuName 
= "Brian",
            StuAge 
= "21",
            StuClass 
= "1班"
        };

從代碼中不難看出,C#3.0給我們提供了很方便得方式來(lái)進(jìn)行對象的初始化工作。

查詢(xún)

這個(gè)想必大家都應該有所耳聞,那就是鼎鼎大名的Linq。這是C#3.0中最獨特好用的新特性之一。Linq改變了我們寫(xiě)數據應用程序的方式,先前,開(kāi)發(fā)人員需要考慮并編寫(xiě)不用的代碼來(lái)處理不同數據源中的數據(SQL Server ,XML ,Memory....)。LINQ很好的幫我們解決了這個(gè)煩人的問(wèn)題。同時(shí)借助Lambda,我們可以更方便準確的查詢(xún)我們想要的數據。

使用Linq簡(jiǎn)單的數據查詢(xún)例子:

Code

 

變量聲明

這里要說(shuō)的是var。var是C#3.0中提供的用于聲明變量的關(guān)鍵字,開(kāi)發(fā)人員可以不考慮變量的類(lèi)型就可以對變量進(jìn)行聲明(這一點(diǎn)用法非常類(lèi)似Javascript)。但是兩者還是有些差異。

相同點(diǎn):用var來(lái)聲明任何類(lèi)型的局部變量。

不同點(diǎn):它僅僅負責告訴編譯器,該變量需要根據初始化表達式來(lái)推斷變量的類(lèi)型,而且只能是局部變量。

我們可以這樣聲明變量:

var i= 10
var name 
= "edisundong"
var numbers 
= new int[] { 123 }; 

var僅僅是個(gè)關(guān)鍵字,它并不是C#3.0中的一種新的類(lèi)型,而是負責告訴編譯器,該變量需要根據初始化表達式來(lái)推斷變量的類(lèi)型,上面的語(yǔ)句相當于

int i= 10
string name = " edisundong "
int[] numbers = new int[] { 123 }; 

這里還需要注意幾點(diǎn):

1.在聲明時(shí)必須同時(shí)賦值。

2.在使用var聲明一個(gè)局部變量后,他仍然具備強類(lèi)型。

var integer = 10;
integer = " edisundong ";
編譯時(shí)會(huì )報Cannot implicitly convert type string to int錯誤。

3. 初始化器表達式的編譯期類(lèi)型不能夠是空(null)類(lèi)型。

4. var的聲明僅限于局部變量

擴展方法

以前如果我們想擴展一個(gè)類(lèi)的功能必須直接源自于它并且從學(xué)其中的方法,在C#3.0中,介紹了一種很快捷的擴展功能的方法。

Code

定義一個(gè)類(lèi),其中定義一個(gè)方法,注意:這個(gè)類(lèi)和方法都是static的,并且方法的參數是類(lèi)Student。這樣,Student類(lèi)就可以擴展GetStudentInformation方法:

Code

 

小結:初學(xué)了下C#3.0,感覺(jué)帶來(lái)了不少驚喜,其中有很多新的特性是以前所未知的。C#3.0的新特性應該還不止這些,還需繼續學(xué)習研究。

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C# 3.0 特性預覽
Lambda表達式的前世今生(上)
JavaScript語(yǔ)言精髓與編程實(shí)踐20071115 筆記3 第四章JavaScript的函數式語(yǔ)言特性
Java 10 最重要的 5 個(gè)新特性!
Lambda表達式
體驗JAVA 11新特性
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久