1樓:匿名使用者
為了將方法宣告為可以接受可變數量引數的方法,我們可以使用params關鍵字來宣告陣列,如下所示:
public static int32add(params int32 values)
return sum;
}只有方法的最後乙個引數才可以標記params,該引數必須標識乙個一維陣列,但型別不限。對方法的最後乙個引數傳遞null或者0個數目的陣列的引用都是合法的,如下面**呼叫上面add方法,編譯正常,執行正常,和期望一樣結果為0:
public static void main()
下面看一下如何編寫乙個可以接受任意數量、任意型別的引數的方法,也就是把上面方法的int32改成object就可以了:
public static void main()
public static void displaytypes(params object objects)
}輸出:
system.object
system.random
system.string
system.int32
注意,對於可接受可變數量引數的方法的呼叫會對效能造成一定的損失,因為陣列是在堆上分配的,陣列的元素還得初始化,陣列的記憶體還得被垃圾**器**,為了減少這種沒必要的效能損失,我們希望定義幾個沒有params關鍵字的過載方法,如system.string類的concat方法,如下:
public static string concat(object arg0);
public static string concat(params object args);
public static string concat(params string values);
public static string concat(object arg0, object arg1);
public static string concat(string str0, string str1);
public static string concat(object arg0, object arg1, object arg2);
public static string concat(string str0, string str1, string str2);
public static string concat(object arg0, object arg1, object arg2, object arg3);
public static string concat(string str0, string str1, string str2, string str3);
2樓:匿名使用者
params是用來傳多個引數的關鍵字,就是說引數不確定(不止乙個),使用params可以允許多個引數的傳入。
就是官方解釋的這樣,
注意看例子:
讓你用只有乙個形參的方法
public static void useparams(params int list)
傳多個引數
useparams(1, 2, 3);
看你**的cmd.executescalar(),是不是這樣。
你所有的提問,按照你的想法全部手敲一遍,就知道了
3樓:匿名使用者
第一段是用來查詢資料庫的資料,第二段用來執行事務。
4樓:匿名使用者
和我用的貌似是乙個樣子的。。這個還真沒有注意過。。。
這程式裡params是幹什麼用的,c#初學者
5樓:
引數修飾符,表示引數不定長,也就是說你可以放入不同長度的int型vals陣列作為引數。
6樓:匿名使用者
可變引數;
用在函式定義中;放在 引數型別定義前;且引數型別需要是陣列:
比如:定義函式
void demo(stirng par1, params int vals){}
其用處為在呼叫時更為靈活
合法的呼叫,此引數可不傳遞,可傳乙個或多個,也可傳陣列:
demo("試試");
demo("試試",3);
demo("試試",3,4);
demo("試試",3,4,5);
int iarr = ;
demo("試試", iarr);
c#中使用params關鍵字跟使用params關鍵字的區別?給點例項,跪求! 10
7樓:匿名使用者
帶params 表示從params 開始的引數個數不定,但是型別都由params後面的型別限定(這裡的是配合params 一起使用的,不表示引數是陣列)。
而不是params,雖然看起來差不多,但這裡是嚴格要求傳入的引數是陣列,且引數的數量只有乙個。
8樓:包布丁
作為形參沒什麼區別,呼叫的時候會略有區別:
//呼叫不帶params的函式:
a(0,new sqlparameter ); //需要直接作為陣列傳送
//帶params的函式:
b(0,new sqlparameter("para1",1),new sqlparameter("para2",2)); //依次傳送陣列中各個專案
一般陣列引數加上params關鍵字會方便一些。
9樓:匿名使用者
使用上沒太多區別,只是後者會更自由一些,比如有乙個陣列sqlparameter叫ab,另外有兩個單獨的sqlparameter分別為a1和a2,前者不帶params的只能這樣呼叫。
a(a,ab)
而後者可以是
b(a)
b(a,a1,a2)
b(a,ab)
params 是什麼意思,c#裡
10樓:四捨**入
params關鍵字可以指定在引數數目可變處採用引數的方法引數。
在方法宣告中的 params 關鍵字之後不允許任何其他引數,並且在方法宣告中只允許乙個 params 關鍵字。
每個c#函式都允許有個引數帶params關鍵字,在呼叫的時候可以不給他傳值,也可以給他傳值,還可以給他傳多個值。
11樓:墮落魔御
不固定引數,也就是說 引數的維數不固定,你想幾個,就可以幾個,
在獲取引數的地方也相應讀取的就可以了
c#中params關鍵字的作用理解
12樓:匿名使用者
params 建構函式宣告陣列 而不知道陣列長度 用的在方法宣告中的 params 關鍵字之後不允許任何其他引數,並且在方法宣告中只允許乙個 params 關鍵字。
using system;
public class myclass
console.writeline();
}public static void useparams2(params object list)
console.writeline();
}static void main()
;useparams(myarray);}}輸出123
1atest
101112
c#中使用params關鍵字跟使用params關鍵字的區別是什麼?
13樓:久落江邊
**如下:
class program
private static int sum(params int values) }
實現了乙個sum方法,用於接收一組整數,並返回它們的和。引數values被加上params關鍵字後,在呼叫時可以在實參列表中列舉出這組整數中的每個元素,非常方便。
關於params關鍵字的用法,需要注意以下幾點:
1. params只能用於一維陣列,不能用於多維陣列和諸如arraylist、list等任何類似於陣列的集合型別。
2. 被加上params關鍵字的形參,必須是形參列表中最後乙個形參,並且方法宣告中只允許乙個 params 關鍵字。
3. 用params關鍵字的方法,有三種呼叫形式:
第一種,列舉出陣列各元素:sum(1,2,3),這也是最常用的形式;
第二種,像沒有加params關鍵字的陣列形參那樣,用陣列名做實參:sum(new int)或int n=new int;sum(n);;
第三種,加params關鍵字的引數在呼叫時可以省略:sum();//返回0;這種方式有時可以少定義乙個方法過載,但當明確定義了過載int sum()時,編譯器會優先呼叫int sum(),而不是sum(params int values)。而且省略params型引數,方法內部仍會new乙個元素個數為0的陣列,效率略查。
第四種,不省略params型引數,用null代替,效率比第三種略高,因為其內部不會new這個陣列。
c#中params引數的用法!!!!
14樓:落月
//引數可以為多個int型,例如getword("this is a dag.", 2);返回"a"
//而getword("this is a dag.", 1, 2);則返回"is a"
//getword("this is a dag.", 0, 2);返回"this a"
public string getword(string s,params int n)
return value.trim();
}不知道是不是你想要的。。有問題可以hi我。
15樓:匿名使用者
params
我在資料訪問時用過
public static int executenonquery(string cmmdtext, commandtype cmdtype, params sqlparameter parameters){}
16樓:乁
public string getword(string s,int n)
17樓:
params 建構函式宣告陣列 而不知道陣列長度 用的在方法宣告中的 params 關鍵字之後不允許任何其他引數,並且在方法宣告中只允許乙個 params 關鍵字。
using system;
public class myclass
console.writeline();
}public static void useparams2(params object list)
console.writeline();
}static void main()
;useparams(myarray);}}輸出123
1atest
101112
c# params 用和不用有什麼區別?
18樓:揚璞玉
如果用params可以傳遞指定型別的多個引數(引數不固定),如果不用params,就只能傳遞指定型別的乙個引數了
19樓:匿名使用者
params的引數個數不用固定
蠔油到底怎麼用,蠔油應該怎麼用?
蠔油是日常生活中很常見的一種調味料,它的用途非常廣泛,可以用來烹製多種菜餚,像肉類 蔬菜 各種麵食等等。簡直就是烹飪小能手,葷素皆宜。蠔油裡面含有豐富的微量元素和不同種類的氨基酸,像鋅元素,谷氨酸 牛磺酸等,這些物質不僅可以增強人體免疫力,同時還能夠為人體提供多種保健功能,是缺鋅人士的不二之選。雖然...
現在哈德森到底該怎麼用
哈德森已經不是以前那個無所不能的哈德森了,本賽季哈德森場均上場時間僅為34.7分鐘,這是他自加盟遼寧隊以來第二低的出場時間,而得分僅僅為24.2分,在cba得分榜上排不到前30。郭士強在使用哈德森時也動了一些腦筋,畢竟哈德森34了,對於乙個小外援來說這樣的年紀不可能再像亞當斯 福特森那樣大包大攬了。...
華為pay到底怎麼用,華為支付怎樣用?
以華為 p20手機為例 操作步驟 1 開始,先在手機的桌面上找到應用程式 錢包 圖示,點選進入新的操作介面。2 然後,進入到錢包的操作介面後,找到 我的 選項,點選開啟。3 進入到我的的操作介面後,找到 付款與賬單 選項,點選開啟。4 在付款與賬單頁面,點選 銀行卡 選項,進項綁卡。5 進入到綁卡介...
冒險島貝貝到底怎麼用
別使用眩暈和冰凍的技能這樣也會掉的!還有只開無敵 原地 加藍 就可以了!其他的不開!掉了會不會出現冒險島營運員?如果有可能你被檢測了,如果你的掛是買的要向賣你掛的人求助。如果不是的話去搜防被檢測的軟體。掛機的方式不對 你是什麼職業?如果樓主是在92yoyo下的貝貝 那麼是要付費的,30元乙個月,10...
js中promise到底怎麼用,nodejs中promise怎麼用
簡單來講,then 方法就是把原來的 寫法分離出來,在非同步操作執行完後,用鏈式呼叫的方式執行 函式。而 promise 的優勢就在於這個鏈式呼叫。我們可以在 then 方法中繼續寫 promise 物件並返回,然後繼續呼叫 then 來進行 操作。js中的promise主要是解決,函式層層巢狀引起...