Min*_*wth 1 .net c# parameters delegates dynamic-invoke
我有以下代码:
public class MyClass
{
private Delegate m_action;
public object[] m_args;
public MyClass()
{
}
public MyClass(Delegate action, params object[] args)
{
m_args = args;
m_action = action;
}
public void Execute()
{
m_action.DynamicInvoke(m_args);
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法的问题在于 m_args 本身就是一个对象,它的内容没有被扁平化为单独的 params 条目。我怎样才能解决这个问题?
我认为你错了。在params
如预期似乎工作。这是一个更简单的示例,表明它有效:
static void f(params object[] x)
{
Console.WriteLine(x.Length);
}
public static void Main()
{
object[] x = { 1, 2 };
f(x);
}
Run Code Online (Sandbox Code Playgroud)
结果:
2
Run Code Online (Sandbox Code Playgroud)
在线查看:ideone