这个不可以的,因为定义一个方法,其参数个数必须确定。
但是可以这样解决,你将不确定的参数都封装在一个类中,给你调用的方法传一个这个类的实例,这样使用不确定参数时,就可以了
支持的,例子如下:
// 下面的函数中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"); // 注意:参数顺序与声明不同
可以的,Console.WriteLine就是一个例子。
例如:static void WriteLine(string format,params object[] objs);
这里objs作为一个object[]对待,只是调用的时候,可以不定参数的调用。
我觉得传一个object[]数组可以实现的,因为就像线程回调一样,参数不定的话系统就是用这个实现的,不过你这个函数要进行内部判断了。
void test(string a, params object[] objs)//params 必须是最后一个参数
{
……
}
调用
test("a",1,2,"sdfd",'d')