【发布时间】:2012-01-28 03:23:18
【问题描述】:
在A班,我有
internal void AFoo(string s, Method DoOtherThing)
{
if (something)
{
//do something
}
else
DoOtherThing();
}
现在我需要能够将DoOtherThing 传递给AFoo()。我的要求是DoOtherThing 可以有任何返回类型几乎总是无效的签名。 B班就是这样的,
void Foo()
{
new ClassA().AFoo("hi", BFoo);
}
void BFoo(//could be anything)
{
}
我知道我可以使用 Action 或通过实现委托(如许多其他 SO 帖子中所见)来做到这一点,但如果 B 类中的函数签名未知,如何实现??
【问题讨论】:
-
如果函数有参数,你会如何调用它?
-
@erikH 该批次的哪个功能?
-
@nawfal ???我的意思是例如 DoSomething(int,string) 作为方法,需要一些值作为参数......
-
@erikH 是的,如果可能的话,我想像
new ClassA().AFoo("hi", BFoo("", 0));一样传递它。希望你能得到我的要求,但我不知道解决办法..
标签: c# methods delegates parameter-passing