1

我正在寻找一种能够实例化具有相同方法的多个类的方法。

想做一些我可以将类的名称作为字符串传递的事情。到目前为止,这是我在编译时所拥有的,因为我没有正确实例化类,所以它不会运行。

我正在做这样的事情,但我知道我错过了一些东西。如果有人可以提供帮助,我将不胜感激。

public class useMyClass{
   public runMyClass(string st1, list<string> mysts, string myClass){
       classProcessor cp = new myClass1(); // this works
       classProcessor cp = new myClass2(); // this works

       // Here I just want to be able to do using the string variable myClass (myClass1 or myClass2 ) could be the string value
       //classProcessor cp = new Class(myClass);

       // This does not work always null
       classProcessor cp = (classProcessor)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(myClass);
       cp.myMethod(st1,mysts);
   }
}

文件 1:classProcessor.cs

public interface classProccessor{
    public void myMethod(string st1, list<string> mysts);
}

文件 2:myClass1.cs

public class myclass1 : classProccessor{ 
    public void myMethod(string st1, list<string> mysts){
      //do something;
    }
}

文件 3:myClass2.cs

public class myclass2 : classProccessor{ 
    void myMethod(string st1, list<string> mysts){
        // do something different;
    }
}

如何通过接口使用类的字符串名称创建类的新实例?我知道我一定错过了一些简单的东西。

4

1 回答 1

0

接口不会自动发生。
您需要在每个类中显式实现接口:

public clas MyClass1 : IClassProcessor
于 2013-04-19T20:54:54.727 回答