我想要类似的东西:
AStaticClass.MakeCall(commonCmds => commonCmds.MethodOfAParticularClass)
所以我想要一个 lambda 表达式作为参数,并让委托列出特定类的可用方法集,我可以使用 lambda 函数通过智能感知访问这些方法。然后调用传入的方法。
IEcommonCmds => commonCmds. {Lists all the methods of a particular class}
然后我想要一个方法来调用。
我无法弄清楚正确的方法签名。
到目前为止,我有 public voidMakeCall(Action cmd) {cmd.invoke;}
这显然是行不通的。我尝试了 func、Expression 并且无法弄清楚。
非常感谢你的帮助!
编辑:
CmdsTwo 和 CmdsOne 可以是静态的。但是,我想以这种方式上课,因为这将使我的其他工作变得更加容易。
public void Main(string []args) {
MyStaticClass.MakeCall(x => x.DoThis);
MyStaticClass.MakeCallTwo(x => x.DoThisTwo);
MyStaticClass.MakeCall(x => x.DoThisThree);
}
public static class MyStaticClass{
public static void MakeCall<???>( ??????)
public static void MakeCallTwo<???>( ??????)
}
public class Cmds{
public void DoThis();
public void DoThisThree();
}
public class CmdsTwo{
public void DoThisTwo();
}
}