c params可變引數

2022-02-06 22:18:54 字數 1089 閱讀 5172

在專案中多多少少會用到params這個關鍵字,來修飾引數,它的作用,讓該引數的個數是可變的,並且可變引數必須是方法的最後乙個引數。但如何判斷到底有沒有為該引數傳遞值,怎麼判斷?

static

void main(string

args)

));string strs = "".split(new

char , stringsplitoptions.removeemptyentries);

paramtest(strs);

console.read();

}static

void paramtest(params

string

paras)

上面的四次呼叫可變引數的方法,並輸出可變引數的長度。如下:

如果是下面的這種情況又該輸出什麼?

paramtest("".split(new

char ));

答案是:1,因為空字串也是值。

所以這裡就需要對空字串的情況進行處理了,如果對於分割的字串,需要加上引數stringsplitoptions移除空項。

string strs = "".split(new

char , stringsplitoptions.removeemptyentries);

paramtest(strs);

如果沒有傳遞引數該如何判斷

if (paras == null || (paras.length == 1 && string.isnullorempty(paras[0])) || paras.length == 0

)

千萬不要通過下面的方式判斷,通常情況下,不會為可變引數直接傳遞null值

if (paras != null

)

除非你傳遞就是null,不然這樣判斷沒任何意義。如下圖,如果不傳遞引數,paras也不會是null。

C params 可變引數使用注意

今天在乙個 net core 專案中呼叫乙個自己實現的使用 params 可變引數的方法時觸發了 null 引用異常,原以為是方法中沒有對引數進行 null 值檢查引起的,於是加上 check null public static void buildblogpostlinks params blo...

C params傳遞多個引數

c 開發語言中 params 是關鍵字,可以指定在引數數目可變處採用引數的方法引數。在函式的引數數目可變而執行的 差異很小的時候很有用!params關鍵字表示函式的引數是可變個數的,即可變的方法引數,例如console.writeline i,j 就像delphi 裡 writeln 函式一樣,用於...

C params傳遞多個引數

c 開發語言中 params 是關鍵字,可以指定在引數數目可變處採用引數的方法引數。在函式的參 數數目可變而執行的 差異很小的時候很有用!params關鍵字表示函式的引數是可變個數的,即可變的方法引數,例如console.writeline i,j 就像delphi 裡 writeln 函式一樣,用...