C 學習第七天

2021-06-07 05:45:22 字數 1291 閱讀 5834

c#中的params引數(引數陣列):  

1、params引數是陣列。呼叫方式可以陣列方式,也可以單個元素方式。

static void test(string name,params int scores)

console.writeline("你好,你的scores is ",name,sb);

}

test("劉德華",new int);//以陣列方式呼叫

test("周星馳",80,90,100,98);//單個元素方式呼叫

test("梁朝偉");//無引數方式呼叫

2、params引數必須是最後乙個引數。

3、params引數不能是ref或out引數。

4、params引數不是方法過載的簽名特性。

5、當呼叫方法而沒有傳遞params引數時,編譯器實際傳遞乙個空陣列(長度為0的陣列)。

分析:當以單個元素傳遞params引數時,實際編譯器自動生成乙個陣列:該陣列長度等於這些引數元素個數,元素就是這些單個引數。然後吧該陣列傳遞到方法中。

例如:test("劉德華",10,5);系統實際執行如下操作:

int temp = new int[2]; temp[0] = 10; temp[1] = 5 ; test("劉德華",temp).

擴充套件方法

//擴充套件方法

/** 1、擴充套件方法必須放在靜態類中。

* 2、擴充套件方法必須是靜態的。(靜態類中不能存在例項成員)

* 3、要擴充套件的型別必須是第乙個引數,且以this為字首(擴充套件類例項),後面可以有普通引數

* 4、使用擴充套件方法時,必須把擴充套件方法所在的靜態類加入使用的命名空間

* 5、擴充套件型別的子類也自動具有同樣的擴充套件方法(繼承)

*/static class util

internal static void printclassname(this animal animal)

internal static void add100(this int num)

}}",num+100);}}

呼叫:

animal.printclassname();

pig.printclassname();

console.writeline(dog.getphqint());

int a = 8;

a.add100();

第七天學習

練習題 1 以下類定義中哪些是類屬性,哪些是例項屬性?class c num 0 def init self self.x 4 self.y 5 c.count 62 怎麼定義私有 法?3 嘗試執行以下 並解釋錯誤原因 4 按照以下要求定義乙個遊樂園門票的類,並嘗試計算2個 1個小孩平日票價。要求 ...

Java學習第七天

類成員 static成員 當使用例項來訪問類成員時,系統底層依然是委託該類來訪問類成員。因此,即便該類例項為null,她依然可以訪問所屬類的類成員。例如 package lesson5 單例模式 singleton 主要通過靜態變數 靜態方法和private構造方法完成。例如 package les...

Effective C 學習第七天

條款23 寧以non memeber non friend替換member函式 non member non friend可以給物件帶來更大的封裝性,從兩個方面來考慮 1 考慮封裝,越多東西被封裝,它們就越不可見,就越少人看到它,就會越有彈性去改變它 2 考慮物件內的資料,越少 可以看到資料,越多的...