1、自動屬性
下面兩種寫法作用相同
public int Age { get; set;}
PRivate int age;public int Age{ get { return age; } set { age = value; }}
//上面兩種寫法的區(qū)別等同于中國、中華人民共和國的區(qū)別
2、可空類型
對于值類型而言,在定義的同時必須要賦與具體的值,否則可能無法通過編譯.但是在某些情況下,用戶事先不知道它的值是多少,比如無法事先知道學生的年齡.因為將年齡定義為可以為空的類型就顯得很重要.
3、泛型類
4、對象初始化器
示例:
Student stu = new Student(){Name = "張三" , Age = 18 };
5、集合初始化器
示例:
List<Student> stuList=new List<Student>(){ stu,
new Student(){Name="李四" , Age = 20 }
};
6、var關鍵字
注意1:var b;這種寫法是錯誤的.原因是由var聲明的變量,必須在定義的同時就初始化.
注意2:通過var聲明的變量一旦實例化后,就不能再更改它的數(shù)據(jù)類型.例如下面的代碼:
var a = 5; a = “zhangsan”;//a=”zhangsan”報錯
7、匿名類型
在實例化一個類對象時,可以無須事先定義該類,通過new{}即可動態(tài)創(chuàng)建類對象.
示例:
var preson=new { Name="王五" , Sex = "男"};
8、擴展方法
給以前定義好的類擴展其他的方法.
示例:Student的擴展方法
public static class StudentExtention { public static string ConsoleStudent(this Student stu) { if (!stu.Age.HasValue) { stu.Age = 18; } string str="姓名:" + stu.Name + "/n" + "性別:"+stu.Sex+"/n"+"年齡:"+stu.Age; return str; } }
9、匿名類型和Lambda表達式
示例:

但是上述方式,使用很復雜.我們可以通過匿名方法來簡寫上述功能.Lambda表達式也是匿名方法的一種快速寫法.
Lambda表達式分3部分 : 參數(shù) | => | 表達式
下面的代碼演示了如果使用Lambda表達式改寫委托的示例

注意1:如果Lambda表達式只有1個參數(shù),那么參數(shù)可以不用()包裹
注意2:Lambda表達式部分可以使用{}包裹,也可以不包裹.如果有多行代碼,必須要使用{}包裹起來.
由此:在出現(xiàn)委托(Func參數(shù))的地方,我們就可以寫Lambda表達式.
Func<T, K>是一個泛型委托.該委托的參數(shù)類型為T,返回值類型為K.

Lambda表達式的參數(shù)arg的類型為T,Lambda的表達式部分返回值類型為K.
10、分部類
關鍵字:partial
partial是一個類修飾符,用于把類定義拆分為幾個部分,便于代碼管理
ending......
|
新聞熱點
疑難解答