是否有可能在C#中接受params
参数,然后将它作为params
列表传递给另一个函数?现在,如果我没有弄错,下面的函数将通过args
作为单个参数,它是一个object
类型的数组。这里的目标是不言而喻的。C#链接参数函数调用
//ScriptEngine
public object[] Call(string fnName, params object[] args)
{
try{
return lua.GetFunction(fnName).Call(args);
}
catch (Exception ex)
{
Util.Log(LogManager.LogLevel.Error, "Call to Lua failed: "+ex.Message);
}
return null;
}
的lua.GetFunction(fnName).Call(args);
是我的代码以外的调用,它接受param object[]
。
啊,我明白了,谢谢。那么'params'会通过它的第一维来爆炸一个给定的数组来填充参数? – selkathguy
@selkathguy没有不完美。如果提供的类型完全匹配,它会精确地传递它。如果没有,并且它可以将参数视为一个项目,它会将其包装在一个数组中。如果它不能这样做,那么它将不会编译。如果提供的类型与数组类型*完全不匹配,则不会将其视为整个数组,而是将其视为整个数组。 – Servy
因此,将一个由5个对象组成的单个数组传递给像'fn(object a,object b,params object [] c)'这样的函数会将一个文件写入'a'和'b'中的每一个,然后剩下的将被C? – selkathguy