Csharp/C#教程:C# params可变参数的使用注意详析分享

今天在一个.NETCore项目中调用一个自己实现的使用params可变参数的方法时触发了null引用异常,原以为是方法中没有对参数进行null值检查引起的,于是加上checknull代码:

publicstaticvoidBuildBlogPostLinks(paramsBlogPostDto[]blogPosts) { if(blogPosts==null) return; foreach(varblogPostinblogPosts) { //... } }

结果却出人意料,null引用异常继续,仔细看异常stack才发现原来null引用异常是在foreach时抛出的,需要在foreach时对blogPost进行checknull。

下面的示例代码可以验证这一点

classProgram { staticvoidMain(string[]args) { BuildBlogPostLinks(null); BlogPostblogPost=null; BuildBlogPostLinks(blogPost); } publicstaticvoidBuildBlogPostLinks(paramsBlogPost[]blogPosts) { if(blogPosts==null) { Console.WriteLine("blogPostsinnull"); return; } foreach(varblogPostinblogPosts) { if(blogPost==null) { Console.WriteLine("blogPostinnull"); } else { Console.WriteLine("blogpost.Title:"+blogPost.Title); } } } } publicclassBlogPost { publicstringTitle{get;set;} }

运行时的输出结果是

$dotnetrun
blogPostsinnull
blogPostinnull

上述就是C#学习教程:C# params可变参数的使用注意详析分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/908433.html

(0)
上一篇 2021年10月25日
下一篇 2021年10月25日

精彩推荐