我有2个API,它们都有相同的方法但名称不同。
我用这两个继承了这个抽象类。
现在我正在尝试创建另一个使用这些API的类,我不希望它关心它使用哪个API。
如何将抽象类作为参数传递并将其用作api的一个?
有更好的方法吗?
示例代码:
public abstract class AbstractClass
{
public abstract string Func1();
}
public class Class1: AbstractClass
{
public override string Func1()
{
return "Class1";
}
}
public abstract class Class2: AbstractClass
{
public override string Func1()
{
return "Class2";
}
}
public class Class3
{
Type type;
public Class3(Type type)
{
this.type = type;
}
public string UseFunc1()
{
//I know this wont work but what shuld I do
type a = new type();
return a.Func1();
}
}
答案 0 :(得分:0)
我认为你可能想要实现的目标如下。虽然您无法创建抽象类,但您可以传递一个
public class Class3
{
AbstractClass abstractMember
public Class3(AbstractClass abstractMember)
{
this.abstractMember = abstractMember;
}
public string UseFunc1()
{
return abstractMember.Func1();
}
}
您可以这样称呼:
Class2 c2 = new Class2();
Class3 c3 = new Class3(c2);