我很好奇是否可以使用隐式类型的参数创建委托方法。这就是我想要完成的事情。这种事情不会为我编译,但它应该让你了解我想要完成的事情。
这是我想使用委托调用的函数:
class MyClass
{
ArrayList function1(int param1, int param2)
{
...do something...
}
ArrayList function2(string param3)
{
...do something...
}
}
这是调用它们的类:
class MyOtherClass
{
delegate ArrayList delFunc(params object[] args);
myOtherClass()
{
MyClass myClassInstance = new myClass();
delFunc myDelFunc1 = myClassInstance.function1;
delFunc myDelFunc2 = myClassInstance.function2;
myDelFunc1(1,2);
myDelFunc2("hello world");
}
}
显然,在这个示例中,您实际上只是调用了提供的函数。我实际上想要做的是创建一个包装函数,它允许您提供一个函数作为具有任何可能参数列表的委托。
我能想出的唯一解决方案是让 MyClass 中的函数也采用参数列表。但是,这会让直接调用这些函数的任何人感到非常困惑。这就是我的意思:
class MyClass
{
ArrayList function1(params object[] args)
{
...do something...
}
ArrayList function2(params object[] args)
{
...do something...
}
}
现在它编译了,但我需要猜测或阅读注释,以找出传递给函数 1 和函数 2 的内容。此外,它曾经在编译时失败,现在在运行时失败。所有非常糟糕的事情...
我在想可能会因为做这样的事情而缺少一些语法
delegate ArrayList delFunc(MatchAnyArgumentSignature);
干杯,罗伯