欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年07月28日 14:36:53   作者:dudu  
這篇文章主要給大家介紹了關(guān)于C# params可變參數(shù)的使用注意的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

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

結(jié)果卻出人意料, null 引用異常繼續(xù),仔細(xì)看異常 stack 才發(fā)現(xiàn)原來 null 引用異常是在 foreach 時(shí)拋出的,需要在 foreach 時(shí)對(duì) blogPost 進(jìn)行 check null 。

下面的示例代碼可以驗(yàn)證這一點(diǎn)

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; }
}

運(yùn)行時(shí)的輸出結(jié)果是

$ dotnet run
blogPosts in null
blogPost in null

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • C#獲取攝像頭拍照顯示圖像的方法

    C#獲取攝像頭拍照顯示圖像的方法

    這篇文章主要為大家詳細(xì)介紹了C#獲取攝像頭拍照顯示圖像的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C# TextBox多行文本框的字?jǐn)?shù)限制問題

    C# TextBox多行文本框的字?jǐn)?shù)限制問題

    最近在使用C# TextBox多行文本框的時(shí)候,發(fā)現(xiàn)了其對(duì)字?jǐn)?shù)限制的一點(diǎn)問題,所以總結(jié)下在使用C# TextBox多行文本框要注意的的字?jǐn)?shù)限制問題,現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • C#操作Windows服務(wù)類System.ServiceProcess.ServiceBase

    C#操作Windows服務(wù)類System.ServiceProcess.ServiceBase

    這篇文章介紹了C#操作Windows服務(wù)類System.ServiceProcess.ServiceBase,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#?wpf利用附加屬性實(shí)現(xiàn)任意控件拖動(dòng)

    C#?wpf利用附加屬性實(shí)現(xiàn)任意控件拖動(dòng)

    這篇文章主要為大家詳細(xì)介紹了C#?WPF如何利用附加屬性對(duì)幾種拖動(dòng)方式進(jìn)行封裝,實(shí)現(xiàn)復(fù)用性,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • C#之set與get方法的用法案例

    C#之set與get方法的用法案例

    這篇文章主要介紹了C#之set與get方法的用法案例,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析

    Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • C#中常見的數(shù)據(jù)緩存方式匯總

    C#中常見的數(shù)據(jù)緩存方式匯總

    在C#開發(fā)中,數(shù)據(jù)緩存是一種優(yōu)化應(yīng)用程序性能的常見技術(shù),合理的緩存策略可以減少對(duì)數(shù)據(jù)源的訪問次數(shù),提高數(shù)據(jù)處理速度,從而改善用戶體驗(yàn),下面將詳細(xì)介紹幾種在C#中常見的數(shù)據(jù)緩存方式,以及相應(yīng)的實(shí)例,需要的朋友可以參考下
    2024-05-05
  • C#異常執(zhí)行重試的實(shí)現(xiàn)方法

    C#異常執(zhí)行重試的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#異常執(zhí)行重試的一種實(shí)現(xiàn)方法,重試模式可以用poll替代,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • C#圖像處理的多種方法

    C#圖像處理的多種方法

    這篇文章主要為大家詳細(xì)介紹了C#圖像處理的多種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 將c#編寫的程序打包成應(yīng)用程序的實(shí)現(xiàn)步驟分享(安裝,卸載) 圖文

    將c#編寫的程序打包成應(yīng)用程序的實(shí)現(xiàn)步驟分享(安裝,卸載) 圖文

    時(shí)常會(huì)寫用c#一些程序,但如何將他們和photoshop一樣的大型軟件打成一個(gè)壓縮包,以便于發(fā)布.
    2011-12-12

最新評(píng)論