C params 可變引數使用注意

2022-01-14 12:30:45 字數 662 閱讀 4375

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

public static void buildblogpostlinks(params blogpostdto blogposts)

}

結果卻出人意料, null 引用異常繼續,仔細看異常 stack 才發現原來 null 引用異常是在 foreach 時丟擲的,需要在 foreach 時對 blogpost 進行 check null 。

下面的示例**可以驗證這一點

class program

public static void buildblogpostlinks(params blogpost blogposts)

foreach (var blogpost in blogposts)

else }}

}public class blogpost

}

執行時的輸出結果是

$ dotnet run

blogposts in null

blogpost in null

c params可變引數

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

C params傳遞多個引數

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

C params傳遞多個引數

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