《ASP.NET MVC企业实战》(二) MVC开发前奏
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
?
在上一篇“《ASP.NET MVC企業(yè)級(jí)實(shí)戰(zhàn)》(一)MVC開發(fā)前奏”中記錄了作者介紹的一些比較實(shí)用的VS使用方法以及C#2.0中添加的新特性。本篇繼續(xù)大概了解之后版本的一些新特性。
?
一、C#3.0/3.5新特性
a)自動(dòng)屬性
屬性的目的是為了封裝字段和控制對(duì)字段的讀寫權(quán)限,使用自動(dòng)屬性可以用類似public int ID{get;set;}這樣的方式簡(jiǎn)化屬性的實(shí)現(xiàn),自動(dòng)生成對(duì)應(yīng)的字段。這種寫法增加了編譯器的工作量,但不會(huì)對(duì)運(yùn)行效率產(chǎn)生影響。
b)隱式類型推斷var
使用var聲明一個(gè)對(duì)象時(shí),編譯器會(huì)自動(dòng)根據(jù)賦值語句推斷這個(gè)變量的類型。var還可用于匿名類的聲明。用var聲明變量時(shí)有一些限制:
被聲明的變量必須是一個(gè)局部變量,而不是靜態(tài)或?qū)嵗侄?#xff1b;
變量必須在聲明的同時(shí)被初始化;
初始化的對(duì)象不能是一個(gè)匿名函數(shù);
變量聲明后類型不能更改;
賦值的數(shù)據(jù)類型必須是可以在編譯時(shí)確定的類型。
c)對(duì)象集合初始化器
分為對(duì)象初始化、集合初始化兩種:
對(duì)象初始化時(shí)可以這樣寫:User user=new User{Id=1,Name=””};
集合初始化時(shí)的寫法可以為:User users=new List<Users>{new User{Id=1,Name=”1”},newUser{Id=2,Name=”2”}};
d)匿名類
使用匿名類可以將一組只讀屬性封裝到對(duì)象中,匿名對(duì)象可以用var來聲明。例如var user=new User{Id=1,Name=””};這種寫法方便靈活,但要避免濫用,否則會(huì)造成代碼重復(fù)、降低可維護(hù)性等問題。
e)擴(kuò)展方法
基本使用方法為:
?
?
這里被擴(kuò)展的類型為string,則string前需要加this,而且所在的類必須為靜態(tài)的。編譯器在碰到str.WriteSelf這樣的寫法時(shí),首先會(huì)尋找名稱為WriteSelf的實(shí)例方法,沒有找到后就認(rèn)為是一個(gè)擴(kuò)展方法,然后就在當(dāng)前相關(guān)的命名空間中尋找匹配的擴(kuò)展方法。
擴(kuò)展方法至少需要有一個(gè)參數(shù),而且第一個(gè)參數(shù)不能有任何其他修飾符(ref/out),也不能為指針類型編寫擴(kuò)展方法。
f)系統(tǒng)內(nèi)置委托
系統(tǒng)內(nèi)置委托如Func、Action、Predicate、Comparison等,可以被方便得使用,而不必在使用前自己聲明簽名。
Action有16個(gè)重載,參數(shù)個(gè)數(shù)從1-16。
?
?
Func有17個(gè)重載,代表一類有若干(0~16個(gè))輸入?yún)?shù),1個(gè)輸出的簽名。
?
?
Predicate委托如下,用來判斷輸入?yún)?shù)是否符合某種條件,條件要自己定,返回值就是bool了。
?
?
Comparison委托用來比較兩個(gè)參數(shù)。
?
?
?
?
學(xué)習(xí)資料:ASP.NET MVC? 企業(yè)級(jí)實(shí)戰(zhàn) by 鄒瓊俊
轉(zhuǎn)載于:https://my.oschina.net/u/2327858/blog/1504830
總結(jié)
以上是生活随笔為你收集整理的《ASP.NET MVC企业实战》(二) MVC开发前奏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RDD缓存学习
- 下一篇: 第1阶段——uboot分析之查找命令ru