3.匿名類,實際框架編譯的時候自動聲明瞭一個類,可是類的屬性都是隻讀的,只能一次性賦值。
4.var,類型推斷,編譯器自動識別變量類型。只能聲明局部變量。多適用於系統類型,程序員不知道的類型,好比匿名類。
5.擴展方法:靜態類靜態方法,靜態方法第一個參數類型爲要擴展的類型名稱,類型名前加this。實例方法優先級高於擴展方法:若是重名,會優先調用實例方法,因此擴展方法1不能濫用,2考慮重名問題。
6.Linq:實質上就是把一個匿名泛型委託當作一個參數傳入使用了,匿名泛型委託封裝一個where斷定的邏輯。
7.linq本質 where擴展方法的自定義實現:
public static IEnumerable<TSource> myWhere(this IEnumerable<TSource> source,Func<TSource,bool> predicate)
{
List<TSource> listRel=new List<TSource>();
foreach(var item in TSource){
if(predicate.Invoke(item)){
listRel.Add(item);
}
}
}
8.linq語法糖:
var list = from s in studentList
where s.Age<30
select s;
9.用戶界面的東西,都要try catch,防止程序死掉或直接把異常拋給用戶。