您好,登錄后才能下訂單哦!
今天在一個 .NET Core 項目中調用一個自己實現的使用 params 可變參數的方法時觸發了 null 引用異常,原以為是方法中沒有對參數進行 null 值檢查引起的,于是加上 check null 代碼:
public static void BuildBlogPostLinks(params BlogPostDto[] blogPosts) { if (blogPosts == null) return; foreach (var blogPost in blogPosts) { //... } }
結果卻出人意料, null 引用異常繼續,仔細看異常 stack 才發現原來 null 引用異常是在 foreach 時拋出的,需要在 foreach 時對 blogPost 進行 check null 。
下面的示例代碼可以驗證這一點
class Program { static void Main(string[] args) { BuildBlogPostLinks(null); BlogPost blogPost = null; BuildBlogPostLinks(blogPost); } public static void BuildBlogPostLinks(params BlogPost[] blogPosts) { if (blogPosts == null) { Console.WriteLine("blogPosts in null"); return; } foreach (var blogPost in blogPosts) { if (blogPost == null) { Console.WriteLine("blogPost in null"); } else { Console.WriteLine("blogpost.Title: " + blogPost.Title); } } } } public class BlogPost { public string Title { get; set; } }
運行時的輸出結果是
$ dotnet run
blogPosts in null
blogPost in null
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。