一、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 ...