C#的params参数遇到null

时间:2025-02-27 23:34:26

params参数支持数组作为参数传入,但并不支持List

C#的params参数遇到null

定义一个使用params的参数

        private static void UseParam(params int[] args)
{
if (args == null)
{
Console.WriteLine("null");
}
else
{
Console.WriteLine("len={0}", args.Length);
}
}
            UseParam();
UseParam(null);
UseParam(new int[]{ , });
//UseParam(new List<int> { 1, 2 });
IEnumerable<int> lst = new List<int> { , };
//UseParam(lst);
UseParam();
UseParam(, );

运行结果:

len=
null
len=
len=
len=

可以看到,null是可以作为参数传入的,所以使用params参数的方法最好是进行null判断:

        public static string Concat(params object[] args)
{
if (args == null)
{
throw new ArgumentNullException("args");
}
...
}