真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

C#params可變參數(shù)的使用注意詳析

今天在一個 .NET Core 項目中調用一個自己實現(xiàn)的使用 params 可變參數(shù)的方法時觸發(fā)了 null 引用異常,原以為是方法中沒有對參數(shù)進行 null 值檢查引起的,于是加上 check null 代碼:

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供延壽網站建設、延壽做網站、延壽網站設計、延壽網站制作等企業(yè)網站建設、網頁設計與制作、延壽企業(yè)網站模板建站服務,十余年延壽做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

public static void BuildBlogPostLinks(params BlogPostDto[] blogPosts)
{
 if (blogPosts == null)
  return;

 foreach (var blogPost in blogPosts)
 {
  //...
 }
}

結果卻出人意料, null 引用異常繼續(xù),仔細看異常 stack 才發(fā)現(xiàn)原來 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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對創(chuàng)新互聯(lián)的支持。


分享名稱:C#params可變參數(shù)的使用注意詳析
當前鏈接:http://weahome.cn/article/pdjdcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部