c# 方法可變數(shù)量的參數(shù)
更新時(shí)間:2012年10月29日 13:40:42 作者:
這個(gè)方法除去params,是一個(gè)普通的方法,接受int數(shù)組,返回組中的所以項(xiàng)之和
聲明一個(gè)可變數(shù)量的參數(shù):
Static int Add(params int[] values)
{
int sum = 0;
if(value != null)
{
for(int x = 0;x<values.Length;x++)
sum += values[x];
}
return sum;
}
上面這個(gè)方法除去params,是一個(gè)普通的方法,接受int數(shù)組,返回組中的所以項(xiàng)之和。
我們可以這樣調(diào)用:Add(new int[]{1,2,3});
但是閱讀性不是很高,我們希望能更簡潔:
Add(1,2,3);
這時(shí),由于params關(guān)鍵字,是可以編譯通過和運(yùn)行的。
params只能應(yīng)用于方法參數(shù)中的最后一個(gè)。
在c#編譯器發(fā)現(xiàn)Add(1,2,3)時(shí),會(huì)先尋找是否有Add(int i,int j,int k)匹配的方法,
如果有就調(diào)用,沒有,就尋找是否有定義為Add(params int[] values)的方法,
如果有就把1、2、3先保存到一個(gè)數(shù)組里,然后調(diào)用Add(int[] values)方法。
這里也說明CLR對params關(guān)鍵字是一無所知的,params只是提供給c#編譯器使用的。
復(fù)制代碼 代碼如下:
Static int Add(params int[] values)
{
int sum = 0;
if(value != null)
{
for(int x = 0;x<values.Length;x++)
sum += values[x];
}
return sum;
}
上面這個(gè)方法除去params,是一個(gè)普通的方法,接受int數(shù)組,返回組中的所以項(xiàng)之和。
我們可以這樣調(diào)用:Add(new int[]{1,2,3});
但是閱讀性不是很高,我們希望能更簡潔:
Add(1,2,3);
這時(shí),由于params關(guān)鍵字,是可以編譯通過和運(yùn)行的。
params只能應(yīng)用于方法參數(shù)中的最后一個(gè)。
在c#編譯器發(fā)現(xiàn)Add(1,2,3)時(shí),會(huì)先尋找是否有Add(int i,int j,int k)匹配的方法,
如果有就調(diào)用,沒有,就尋找是否有定義為Add(params int[] values)的方法,
如果有就把1、2、3先保存到一個(gè)數(shù)組里,然后調(diào)用Add(int[] values)方法。
這里也說明CLR對params關(guān)鍵字是一無所知的,params只是提供給c#編譯器使用的。
相關(guān)文章
C# Socket實(shí)現(xiàn)簡單控制臺(tái)案例
這篇文章主要為大家分享了C# Socket簡單的控制臺(tái)案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
C#利用Refit實(shí)現(xiàn)JWT自動(dòng)續(xù)期詳解
Refit?是一個(gè)受到Square的Retrofit庫(Java)啟發(fā)的自動(dòng)類型安全REST庫,這篇文章主要為大家介紹了C#如何利用Refit實(shí)現(xiàn)JWT自動(dòng)續(xù)期,感興趣的可以了解下2023-08-08
c#中實(shí)現(xiàn)圖片灰度化技術(shù)詳解
這篇文章主要介紹了c#中實(shí)現(xiàn)圖片灰度化技術(shù)詳解,本文給出計(jì)算公式和實(shí)現(xiàn)代碼以及圖片例子,需要的朋友可以參考下2014-08-08
C#利用反射技術(shù)實(shí)現(xiàn)去掉按鈕選中時(shí)的邊框效果
這篇文章主要介紹了C#利用反射技術(shù)實(shí)現(xiàn)去掉按鈕選中時(shí)的邊框效果,涉及C#針對窗口的參數(shù)設(shè)置技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

