"存储"一个类来调用静态方法

Sha*_*yay 0 c#

假设我有类A,它调用类B或类C中的静态方法.它将调用哪个类将取决于在类A的构造函数中传递的参数.需要调用类B和C中的方法具有相同的方法签名.那么,有什么方法可以做到这样的事情:

Object call;
if (type == 0)
    call = ClassA;
else
    call = ClassB;

call.someMethod ();
Run Code Online (Sandbox Code Playgroud)

我知道它可以使用一个接口来完成,并且让B和C类都实现接口,但是每次上面的调用发生时都需要创建一个B或C的对象,这是非常耗费资源的.所以,我想知道是否有其他方法可以做到这一点.

编辑:对不起,如果这不清楚,但是Object call是一个类变量和方法调用类B和C需要在类中的其他方法而不仅仅是构造函数.

Mat*_*nen 5

不要使用静态方法.使用接口(或基类),创建两个类的单个实例并将它们存储在静态字段中.这样您就不必每次都实例化,只需从字段中获取现有实例即可.