是否有這樣的需求在建立函數時參數個數不固定,又不想使用重載,那麼下面這個技術就比較適合。sql
相信你必定見過下面這的代碼:函數
string.Format("我叫:{0}今年:{1}歲.", "師傅", 29);
Format 就是string的一個函數,第一個參數是固定的字符串類型,那麼後面的參數就不肯定是具體什麼數據類型和後續要傳入多少個參數。spa
若是要用重載的話,每增長一個參數就須要增長一個重載比較麻煩。code
例如:orm
public void Add(string sql, string name) { } public void Add(string sql, string name,int age) { } public void Add(string sql, string name,int age,int gender) { }
那麼咱們如何能像string.Format同樣根據實際狀況來傳遞參數,固然是能夠的。blog
定義一個函數,其中在參數類型前加上params關鍵字,若是要使用params定義的話必須是最後一個參數,字符串
好比你有3個參數那麼第3個參數必定是params才能夠。string
public void Add(string sql, params object[] attribute) { }
只有基礎參數的傳遞,第二個參數能夠不傳遞調用:class
Test t = new Test(); t.Add("我是");
帶有參數的方式調用:基礎
Test t = new Test(); t.Add("我是", "師傅", 29, 1);