我正在尝试编写以下内容:我想编写一个方法“A”,该方法需要另一个方法“B”以及此方法的参数数量未知。 (params object [] args)。现在,在方法A中,我想用参数args调用B。 B现在将返回一个我希望A返回的对象。C#执行给定方法的方法
这一切听起来有点怪怪的,所以我会添加一些示例代码:
public object A(Func<object> B, params object[] args)
{
object x = B.Method.Invoke(args);
return x;
}
的问题是,Func键不喜欢的工作。有没有人知道这样做的方式?
问候, 基督教
请问,如果你只传递一些定义的参数,例如,如果你定义Func键接受一个整数,字符串代码的工作?我认为你的代码几乎没问题,不知道Func是否可以定义为接受参数... – 2011-01-24 10:25:27
是的,如果我定义参数,它确实有效。但它不接受类似Func B。 –
Christian
2011-01-24 10:27:05
是b是固定签名吗?你知道B型返回并需要什么吗?如果没有,那么你不能使用任何Func <..>签名。你将不得不使用委托和动态调用。 http://msdn.microsoft.com/en-us/library/system.delegate.dynamicinvoke.aspx – davidfowl 2011-01-24 10:31:25