您好我想做的事情:
public class Subscription
{
private Action _action; //????
public Subscription( Action a )//????
{
_action = a; //????
}
}
public class testklass
{
public testklass()
{
new Subscription(a); // just to show you how i want to submit
new Subscription(b);
new Subscription(c);
}
private void a() { }
private void b(string gg){}
private void c(int i, string g) { }
}
有办法做到这一点吗? 它会花费很多性能吗?
非常感谢任何建议
我要打一个调解员
testklass
只是创建Subscription
对象并将其移交给Mediator
的订阅者
当其他类发布与订阅匹配的Object / s时,谁做了所有这些的逻辑
但目前只想了解如何在我的容器对象Action
中存储参数数量未知的Subscription
答案 0 :(得分:3)
public class Subscription<T>
{
private T _action;
public Subscription(T a)
{
_action = a;
}
}
你可以像使用它一样使用它;
Action<int> func1 = (q) => q += 1;
Action<int,int> func2 = (q,w) => q += w;
Subscription<Action<int>> s1 = new Subscription<Action<int>>(func1);
Subscription<Action<int,int>> s2 = new Subscription<Action<int,int>>(func2);
作为旁注,我不知道你想做什么,但可能有更好的方法。
答案 1 :(得分:0)
public class testklass
{
public testklass()
{
new Subscription(a); // just to show you how i want to submit
new Subscription(() => b("someparam"));
new Subscription(()=>c(10, "someparam"));
}
private void a() { }
private void b(string gg) { }
private void c(int i, string g) { }
}
答案 2 :(得分:0)
你可以使你的函数在以下语法中获得各种参数的决定性计数
resultType functionName(params object [] list){...}
然后将该函数与任何您想要的参数计数一起使用。
您还可以实现函数参数,如数组或列表或对象。那么你的函数只需要一个参数 - 存储你的参数的对象。
所以,你可以看到有很多方法可以做到这一点。