最近小編看C#視頻,聽到小楊老師講到可變數組,涉及到一個param修飾符,有點不太明白,於是小編站在巨人的肩膀上開始了探索和學習,略有了解,分享給大家喲~
【一】params是什麼?
params是一個計算機函數,表示函數的參數是可變個數的,即可變的方法參數,用於表示類型相同,但參數數量不確定。
C#開發語言中 params 是關鍵字,params主要的用處是在給函數傳參數的時候用,就是當函數的參數不固定的時候。 在函數的參數數目可變而執行的代碼差異很小的時候很有用!
【二】用法:
可變的方法參數,也稱數組型參數,適合於方法的參數個數不知的情況,用於傳遞大量的數組集合參數;當使用數組參數時,可通過使用params關鍵字在形參表中指定多種方法參數,並在方法的參數表中指定一個數組。
static void Main(string[] args)
{
Show("1");//調用Show方法時只能傳一個string類型的實參
}
public static void Show(string str)//只有一個string類型的形參
{
}
①、要實現調用方法時想放多個(任意個數)的實參,那麼形參就要用params關鍵字修飾,並且後邊跟一個數組,表示是一個可變數量的、同類型的數組參數。
形式爲:方法修飾符 返回類型 方法名(params 類型[] 變量名)
{
方法體
}
static void Main(string[] args)
{
Show("1","我","你好");//調用Show方法時可以傳任意個數的string類型的實參
}
public static void Show(params string[]strs )//params修飾的string類型的形參數組
{
}
②、如果有多個類型的參數,則params修飾的參數數組要放到最後,並且只使用一次
static void Main(string[] args)
{
Show(2,"1","我","你好");//調用Show方法時先傳一個int類型的實參2,再傳任意個數的string類型的實參
}
public static void Show(int a,params string[]strs )
//此時Show方法中有兩個形參,一是int類型的形參a,而是params修飾的string類型的形參數組
{
}
③、如果想要這個形參數組可以傳“不同”類型的,則可以寫成object類型。因爲object類型是所有類型的基類,無論是string類型、int類型還是其他自己定義的類的類型,都是object類型的子類。
static void Main(string[] args)
{
Show(56,2,"1","我",3,4,5,"你好");//調用Show方法時傳任意個數的任何類型的實參
}
public static void Show(params object[]strs )
//此時Show方法中一個形參params修飾的object類型的形參數組,object可以是任何類型
{
}
【三】使用params時的注意事項:
(1)若形參表中含一個參數數組(params形參數組),則該參數數組必須位於形參列表的最後,並且只能使用一次。即在方法聲明中的 params 關鍵字之後不允許任何其他參數,並且在方法聲明中只允許一個 params 關鍵字。
(2)參數數組必須是一維數組;
(3)不允許將params修飾符與ref和out修飾符組合起來使用;
(4)params修飾的參數數組,可以爲任何類型,只要設置數組類型爲object就可以。
(5)若實參是數組則按引用傳遞,若實參是變量或表達式則按值傳遞。
(6)C#語法規定,params後邊必定跟數組。作用是把不定數量的、同類型的參數裝入這個數組中。