我有一个带有params object[] args
的方法,并希望根据条件在运行时传递参数。它可以是零个、一个或两个对象参数。
如何在运行时构建params object[] args
?
我有一个带有params object[] args
的方法,并希望根据条件在运行时传递参数。它可以是零个、一个或两个对象参数。
如何在运行时构建params object[] args
?
List<object>
来填充你想要传递的参数,然后在调用可变参数方法之前调用ToArray()
。 List<T>
可以动态增长,让你容纳所需的所有参数。这里有一个假设性的例子,它传递了一个包含七个参数的数组:var args = new List<object>();
args.Add(firstArg);
args.Add(secondArg);
for (int i = 0 ; i != 5 ; i++) {
args.Add(i);
}
MyMethodWithVarArgs(args.ToArray());
public void DoSomething(params object[] args)
可以这样调用
object[] args = new object[] {"Hello", "World", 123};
DoSomething(args);
数组可以在运行时轻松构建(例如,使用List)。
public static void Method(params object[] args)
{
}
您可以做以下事情:
if (condition1)
{
Method();
}
else if (condition2)
{
Method("arg");
}
else
{
Method("arg1", "arg2");
}
MyMethodWithVarArgs(1,2,3,4,5,6)
和MyMethodWithVarArgs(new object[] {1,2,3,4,5,6})
是一样的,只是少了些工作。 - user1228