建立和使用不定數目引數的函式

2021-09-30 02:13:17 字數 1132 閱讀 9300

象c和

c++這樣的語言提供了很多手段用於建立和使用乙個接受不定數目引數的函式,最典型的例子就是

printf

()函式:

int printf(char *format, …);//

省略號表示引數數目不定

使用這個函式十分的簡單:

printf("hello, world/n");

printf("the sum of %d and %d is %d/n", a, b, a+b);

不過,使用這些語言建立這樣的函式必須依賴於一系列預先定義的巨集,而且往往並不具有直觀性和優雅性。

通過運用引數陣列,

c#提供了一種解決這個問題的優雅的解決方案。引數陣列是乙個一維陣列,它作為方法的最後乙個引數出現在引數列表中:

public string concat(string separator, params string strings)

return result;

}

上面的方法用於將一些字串連線成乙個字串,這個方法可以以下面兩種不同的方式呼叫:

1)使用陣列例項作為引數傳遞給方法:

string names = ;

messagebox.show(concat("+", names) + " = great team");

2)使用0

個或多個型別相容的引數傳遞給方法:

messagebox.show(concat("+", "anders", "eric", "scott", "

duncan

") + " = great team");

使用第二種方法呼叫方法時,會先使用這些型別相容的引數(上例中指的是第乙個引數後面所有的引數)建立乙個陣列,然後把這個引數陣列作為真正的實參傳遞給方法。從這一點可以看出:事實上,上面兩種方法傳遞實參的機制完全相同,只是表現手法不同而已。

得益於.net

統一的型別系統(所有型別都從

object

繼承,因此可以利用多型性原理實現型別的統一處理),定義方法時可以將

object

作為任何型別的代名稱定義為引數陣列,呼叫方法時使用具體的型別呼叫:

public int sumtheintegers(params object list)

mysql桶 MySQL 建立預定數目的桶

備註 測試資料庫版本為mysql 8.0 如需要scott使用者下建表及錄入資料語句,可參考 scott建表及錄入資料sql指令碼 一.需求 把資料變為固定數目的桶。例如,把錶emp中的員工編組為4桶。其結果集應該如下所示 grp empno ename 1 7566 jones 1 7788 sc...

python的使用(不定期更新)

這是本人在日常使用時做的筆記,不喜勿噴 def is string s 判斷是否為字串 ifisinstance s,str return true else return false defis int s 判斷是否為整數 ifisinstance s,int return true else r...

建立和使用DLL

首先建立個dll工程 win32控制台 dll工程 新增標頭檔案和cpp檔案,如下 ifndef dll test h define dll test h class declspec dllexport ctest endif include dll test.h include ctest ct...