我有一个名为IClass
声明方法的接口Calculate
,如下所示:
public interface IClass
{
public int Calculate(int x);
}
此外,我有 2 个不同的类实现上述接口,Class1
并且Class2
:
public class Class1: IClass
{
public int Calculate(int x)
{
// do some calc with method 1 here
}
}
public class Class2: IClass
{
public int Calculate(int x)
{
// do some calc with method 2 here
}
}
然后我想从主类调用它,但是有限制,我不知道类类型,我只知道类字符串名称(因为它是一个类库 - 其他人可能会为它编写代码)。
问题是:如何Calculate
只知道特定类的名称来实例化特定类(并调用方法)?
public class MainForm()
{
public int CalcUsing(string classname, int x)
{
IClass myclass = new Type(typeof(classname))() // doesn't work here
int result = myclass.Calculate(x);
return result;
}
}