我正在寻找一种能够实例化具有相同方法的多个类的方法。
希望做一些我可以将类的名称作为字符串传递的东西。这是我到目前为止编译时它不会运行,因为我没有正确地实例化类。
我正在做这样的事情,但我知道我错过了什么。如果有人可以提供帮助,我会很感激。
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);
}
}
file1:classProccessor.cs
public interface classProccessor{
public void myMethod(string st1, list<string> mysts);
}
file2:myClass1.cs
public class myclass1 : classProccessor{
public void myMethod(string st1, list<string> mysts){
//do something;
}
}
file3:myClass2.cs
public class myclass2 : classProccessor{
void myMethod(string st1, list<string> mysts){
// do something different;
}
}
如何通过使用接口使用类的字符串名称创建类的新实例?我知道我必须遗漏一些简单的东西。
答案 0 :(得分:0)
接口不会自动发生 您需要在每个类中显式实现接口:
public clas MyClass1 : IClassProcessor