是否有可能在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