c# 能像java那样传递不定数量的参数吗?

2024-12-18 13:37:53
推荐回答(5个)
回答1:

这个不可以的,因为定义一个方法,其参数个数必须确定。
但是可以这样解决,你将不确定的参数都封装在一个类中,给你调用的方法传一个这个类的实例,这样使用不确定参数时,就可以了

回答2:

支持的,例子如下:

// 下面的函数中dyncParams就是动态参数
void dynamicParams(string name, params int[] dyncParams){...} 
// 使用函数
dynamicParams("a",1);  
dynamicParams("a",1,2,3);

除此之外,c#还至此命名参数和可选参数,例子如下:

// 定义三个参数,其中p2和p3有默认值
void optionParams(string p1, string p2 = "p2", bool p3 = true){ ... }
// 使用函数
optionParams("p1value");          // 省略了p2和p3参数
optionParams("p1value","v2");       // 省略了p3参数
optionParams("p1value",p3:false,p2:"v2"); // 注意:参数顺序与声明不同

回答3:

可以的,Console.WriteLine就是一个例子。
例如:static void WriteLine(string format,params object[] objs);
这里objs作为一个object[]对待,只是调用的时候,可以不定参数的调用。

回答4:

我觉得传一个object[]数组可以实现的,因为就像线程回调一样,参数不定的话系统就是用这个实现的,不过你这个函数要进行内部判断了。

回答5:

void test(string a, params object[] objs)//params 必须是最后一个参数
{
……
}

调用
test("a",1,2,"sdfd",'d')