摘要

在项目中多多少少会用到params这个关键字,来修饰参数,它的作用,让该参数的个数是可变的,并且可变参数必须是方法的最后一个参数。但如何判断到底有没有为该参数传递值,怎么判断?

一个例子

        static void Main(string[] args)
{
ParamTest();
ParamTest("");
ParamTest("1,2,3,4,5".Split(new char[] { ',', ',' }));
string[] strs = "".Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries);
ParamTest(strs);
Console.Read();
}
static void ParamTest(params string[] paras)
{
Console.WriteLine(paras.Length);
}

上面的四次调用可变参数的方法,并输出可变参数的长度。如下:

如果是下面的这种情况又该输出什么?

ParamTest("".Split(new char[] { ',', ',' }));

答案是:1,因为空字符串也是值。

所以这里就需要对空字符串的情况进行处理了,如果对于分割的字符串,需要加上参数StringSplitOptions移除空项。

            string[] strs = "".Split(new char[] { ',', ',' }, StringSplitOptions.RemoveEmptyEntries);
ParamTest(strs);

如果没有传递参数该如何判断

            if (paras == null || (paras.Length ==  && string.IsNullOrEmpty(paras[])) || paras.Length == )
{
Console.WriteLine("没有传递参数");
return;
}

千万不要通过下面的方式判断,通常情况下,不会为可变参数直接传递null值

            if (paras != null)
{ }

除非你传递就是null,不然这样判断没任何意义。如下图,如果不传递参数,paras也不会是null。

最新文章

  1. 通过Maven将Web程序部署到远程Tomcat8服务器的一些注意事项
  2. EnglishLeaning
  3. RabbitMQ入门教程——工作队列
  4. 【JDBC 报错】Connections could not be acquired from the underlying database!
  5. The index also can be used for LIKE comparisons if the argument to LIKE is a constant string that does not start with a wildcard character.
  6. mac 显示set a breakpoint in malloc_error_break to debug 终端显示进程已完成怎么办?
  7. c# ComboBox特殊属性
  8. 两个队列+k叉哈夫曼树 HDU 5884
  9. SSIS 学习(3):数据流任务(下)【转】
  10. 自编译安装nginx
  11. php命令行
  12. C#_C++_SDK_WM_KEYDOWN人物卡顿延迟解决方法
  13. [置顶] oracle 快速查询数据库各种信息、及转换对应java代码
  14. C#操作注册表--DarrenF
  15. jq的siblings对a标签不起效
  16. Redis大幅性能提升之Batch批量读写
  17. 【基础】CSS实现多重边框的5种方式
  18. 【bfs】抓住那头牛
  19. 6条 Tips 为你照亮 GitHub 寻宝之路
  20. (1)HomeAssistant 安装

热门文章

  1. 【codevs3945】 完美拓印
  2. BZOJ1018 [SHOI2008]堵塞的交通traffic
  3. Linux VFS Extended Attribute And Access Control Table
  4. 帝国备份王(Empirebak) \class\functions.php、\class\combakfun.php GETSHELL vul
  5. J-link烧写brjtag工具
  6. 帝国cms搜索表单用法
  7. AngularJs ngClass、ngClassEven、ngClassOdd、ngStyle
  8. 数据结构作业——order(二叉树遍历)
  9. mysql中文坑爹的东西
  10. Linux常用服务部署与优化之NFS篇