一、分部類
1、定義
partial class a
string aa;
partial class a
void dotest()
其實就是
class a
string aa;
void dotest()
2、好處
(1). 可以把乙個類的定義分部到多個檔案中,所以可以讓多個人同時操作乙個類
(2). 把系統生成的**和使用者**分開
3、注意點
(1). 只能定義類、結構和介面
(2). 所有的部分都必須加partial
(3). 每個部分中的類都必須有相同的訪問符
(4). 如果乙個為abstract或sealed,則所有的都是abstract或sealed
(5). 任何乙個繼承某個類,所有的都從該類繼承。
(6). 各個部分可以實現不同介面,會實現所有定義的介面。
(7). 任何部分中定義的方法和字段可以被其他的部分中使用。
(8). 巢狀型別可以是分部的,它外面的型別是不是分部的是無所謂的。
(9). 最後屬性會進行合併
(10). 只能放在class關鍵字前面
(11). 必須在同乙個程式集中。
(12). 泛型的引數說明必須加到所有的後面,泛型引數必須一致。
二、迭代器
1、定義
可以用foreach方法,在2.0中不需要去實現ienumerable 和 ienumerator介面,只需要寫方法返回ienumerable介面。用yield return 某個值就可以了。
具體如下
public static ienumerable power(int number , int exponent )
}這樣就可以了。
2、注意點
(1). 必須返回相同型別
(2). 可用作方法、運算子和get訪問器
(3). yield break終止迭代
(4). 可以用多個迭代器
(5). 返回值必須是ienumerable、ienumerator、ienumerable、ienumerator介面。
三、可空型別
1、定義
其實是system.nullable的例項,可以設定空值。
如nullable:可以賦任何正確的型別和null
定義時可以用:nullablenum = null或者int? num=null
可以把日期設定為null
2、注意點
(1). 用??來取到預設值int? x = null;int y = x??-1;
(2). 不允許使用巢狀的可空型別。nullable>
(3). 取到值用value,或者用getvalueordefault();
四、匿名方法
1、定義
命名方法
//public delegate void system.eventhandle(object sender , eventargs e);
this.load += new system.eventhandle(this.form1_load);
public void form1_load(object sender , eventargs e)
//匿名方法
this.load += delegate(object sender , eventargs e)
;//分號不能少
2、注意點
(1). 不能使用out和ref的引數
(2). 不能用不安全**
五、屬性訪問器可訪問性
1、public string something
set}
2、現在可以限制其中乙個的可訪問性
public string something
protected set
}3、介面中的不能增加屬性可訪問性,所以可以在實現介面中的類進行新增。
4、當屬性有兩個訪問器的的時候,可以限制其中乙個。
5、屬性訪問器的可訪問性必須比屬性可訪問性更嚴格
6、override必須與被重寫的那個屬性相同。
六、委託中的協變與逆變
1、協變,委託方法返回型別可以更具體
public delegate 父類 somefucntion();
public 子類 otherfunction()
2、逆變
public delegate void somefucntion(子類);
public void otherfunction(父類)
七、命名空間別名限定符
1、class system{}
global::system.console.writeline("hello world!");//global 表示全域性的
2、using colalias = system.collections;//別名
colalias::hashtable test = new colalias::hashtable();
c 2 0的新功能 一 泛型類
一 定義 public class stack t m items public void push t item public t pop public stack 二 使用 stactstack new stack stack.push 1 stack.push 2 stack.pust sss...
C 2 0 新增功能
泛型 該語言中新增了一些泛型型別,使得程式設計師能夠實現程度很高的 重用,獲得更高的集合類效能。泛型型別只存在 arity 上的不同。也可以將引數強制為特定的型別。有關更多資訊,請參見泛型型別引數。迭代器 迭代器使得規定 foreach 迴圈將如何迴圈訪問集合的內容變得更加容易。分部類 分部型別定義...
c 2 0的新功能 二 泛型的其他的一些資訊
一 泛型的轉換 1 可以隱式轉換到object以及派生約束指定的類。class myclasswhere t baseclass isomeinte ce t可以轉換到object baseclass isomeinte ce。2 顯式轉換,可以轉換到介面,不能顯示轉換到類,是型別不安全的。3 解決...