從C 2 0新特性到C 3 5新特性

2021-09-08 09:55:11 字數 2408 閱讀 5466

一、c# 2.0 新特性:

1、泛型

listobj_list=new list();

obj_list.add(new myobject());

2、部分類(partial)

namespace ***

set }}

//或在另乙個檔案中

public partial class class1}}

3、靜態類

public static class mystaticobject

public static string mothed1()

}4、屬性訪問器可訪問性

public class class2

protected set }}

5、可空型別

int? aa = null;

aa = 23;

if (aa.hasvalue)

6、匿名方法

class someclass //在c#1.0中

void somemethod()

}class someclass2

;del();}}

7、命名空間別名限定符

global::

二、c# 3.0/3.5 新特性:

1、linq(語言整合查詢)

以前,查詢xml檔案使用xpath,資料庫剛用sql,linq搜尋任何ienumerable資料來源.

在orm解決方案中,linq物件用途很大.

示例:list customers = new list();

ienumerable query_result = from c in customers

where c.money > 100

orderby c.name

select c;

linq 包括 linq to sql, linq to objects, linq to xml 和 ado.net entity framework 等幾個部分

2、lambda表示式,更激動人心的,是一種匿名函式結構,它可以方便的實現委託、查詢綜合和擴充套件方法的 delegate 型別引數的初始化定義.

示例:原來的:

delegate void func(int x);

void add(int x)

func f=new func(add);

f(1);

可簡化為:

func f=(x)=>;

或:func f=(int x )=>;

3、隱式型別本地變數,var關鍵字(型別指令碼語言中的隱式宣告變數,主要針對linq設計)

var num=0;

var nums=;

var num='a';

var list=new list();

foreach(var i in nums)

4、擴充套件方法,extension(允許您擴充任何類,甚至是標記為封裝的類,對於擴充套件的方法必須在靜態類裡來擴充套件)

示例,在string上實現count()方法:

using system.runtime.compilerservice;

public class extensions

return count;}}

//使用:

string s="hello,world!";

int i=s.count();

5、物件和集合初始值設定項,初始化的簡化,寫實體類方便了

public class person //自動實現屬性

public int age

}var person1=new person; //...

var persons=new list,

new person

};6、從 c# 不同版本看使用**的不同**(c# 3.0/3.5 寬鬆委託)

c# 1.0/1.1:

public class myform10

void bt_click(object sender, eventargs e)

}c# 2.0:

public class myform20;}

}c# 3.0/3.5(寬鬆委託):

public class myform30

; //還沒搞懂}}

7、匿名型別

var aa1=new;

console.write(aa1.name);

var aa2=new

aa1=aa2;

8、隱式型別化陣列

9、分部方法(partial分部類的分部方法,必須是void返回型別)

// 檔案 1.cs

public partial class a

// 檔案 2.cs

public partial class a //實現

}

C C 2 0新特性與C 3 5新特性

c 2.0新特性與c 3.5新特性 一 c 2.0 新特性 1 泛型 listobj list new list obj list.add new myobject 2 部分類 partial namespace set 或在另乙個檔案中 public partial class class1 3 ...

C 2 0的新特性

c 2.0的新特性 1 區域性型別 就是把乙個類 介面,結構 分成幾部分,系統編譯時自動的組合 利用關鍵字partial修飾 partial class a partial class a 只要類的一部分繼承乙個父類,那整個類都繼承。沒一部分都可以繼承乙個介面,則整個類繼承所有介面 類的一部分一但被...

C 3 5 新特性的總結 一

c 3.5 新特性的總結 一 物件初始化 如果乙個類有public欄位,在建立類的物件例項時可以使用下面的 來初始化這些字段 public class myclass myclass my new myclass my.field1 abcd my.field2 44 my.field3 true ...