六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

創建與使用不定數目參數的函數

[摘要]象C和C++這樣的語言提供了很多手段用于創建和使用一個接受不定數目參數的函數,最典型的例子就是printf()函數:int printf(char *format, …); //省略號表示參數數目不定 使用這個函數十分的簡單:printf("Hello, world\n");...
象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)

{

string result = "";

for (int i = 0; i < strings.Length; i++)

{

if (i > 0)

result += separator;

result += strings[i];

}

return result;

}


上面的方法用于將一些字符串連接成一個字符串,這個方法可以以下面兩種不同的方式調用:

1) 使用數組實例作為參數傳遞給方法:

string[] names = { "Anders", "Eric", "Scott", "Duncan" };

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)

{

// sum all the integers included in list

int sum = 0;

foreach (object o in list)

if (o.GetType() == typeof(int))

sum += (int) o;

return sum;

}





主站蜘蛛池模板: 四虎免费永久在线播放 | 日本www色视频成人免费 | 日日操狠狠操 | 亚洲mm8成为人影院 亚洲h在线观看 | 亚洲日日夜夜 | 日韩视频第二页 | 小小的日本动漫在线观看免费高清 | 亚洲高清视频免费 | 亚洲第一区精品观看 | 色偷偷狠狠色综合网 | 在线观看亚洲专区 | 天天综合天天综合色在线 | 日韩成人精品在线 | 亚洲mm8成为人影院 亚洲h在线观看 | 色老久久精品偷偷鲁一区 | 四虎免费永久观看 | 四虎欧美永久在线精品免费 | 手机av在线播放 | 亚洲国产精品久久 | 四虎影院永久网址 | 午夜日韩久久影院 | 视频在线a| 日韩精品久久一区二区三区 | 日韩亚洲欧美一区 | 亚洲国产99在线精品一区二区 | 天天做天天添婷婷我也去 | 日产乱码卡一卡2卡三卡四福利 | 四虎永久影院永久影库 | 日韩在线观看免费 | 日本人欧美xx | 日韩黄色录像 | 欧美在线日韩在线 | 青娱乐在线视频观看 | 亚洲第一黄色网址 | 天天躁日日躁狠狠躁中文字幕 | 亚洲国产成人久久99精品 | 亚洲视频免费观看 | 欧美性另类69xxxx极品 | 亚洲第一页在线播放 | 欧美一级黄色片在线观看 | 自拍视频啪 |