1.var關鍵字 var是一個弱類型,可以替代任何類型 有以下四個特點 1.必須在定義時初始化 2.初始化完成吼,不能給其賦類型不同的值 3.var要求是局部變數 4.使用var定義變數和object不同,它在效率上和使用強類型方式定義變數完全一樣。 2.ref和out的區別 註:在C 中,方法的參 ...
1.var關鍵字
var是一個弱類型,可以替代任何類型
有以下四個特點
1.必須在定義時初始化
var s="adcd"; //可以
var s;
s="abcd"; //不可以
2.初始化完成吼,不能給其賦類型不同的值
3.var要求是局部變數
4.使用var定義變數和object不同,它在效率上和使用強類型方式定義變數完全一樣。
2.ref和out的區別
註:在C#中,方法的參數傳遞有四種類型:傳值(by value),傳址(by reference),輸出參數(by output),數組參數(by array)。傳值參數無需額外的修飾符,傳址參數需要修飾符ref,輸出參數需要修飾符out,數組參數需要修飾符params。
1、使用ref型參數時,傳入的參數必須先被初始化。對out而言,必須在方法中對其完成初始化。
2、使用ref和out時,在方法的參數和執行方法時,都要加Ref或Out關鍵字。以滿足匹配。
3、out適合用在需要retrun多個返回值的地方,而ref則用在需要被調用的方法修改調用者的引用的時候。
兩個的區別:ref是有進有出,out是只出不進。
3.委托
聲明委托
//delegate <return type> <delegate-name><parameter list>
public delegate int MyDelegate (string s);
實例化委托
public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);
委托的多播
使用"+"運算符進行合併 一個合併委托調用它所合併的兩個委托。只有相同類型的委托可被合併
// 創建委托實例
NumberChanger nc;
NumberChanger nc1 = new NumberChanger(AddNum);
NumberChanger nc2 = new NumberChanger(MultNum);
nc = nc1;
nc += nc2;
// 調用多播
nc(5);
//調用nc時會同時調用nc1和nc2