私は同じメソッドを持ちますが異なる名前を持つ2つのAPIを持っています。抽象クラスをパラメータとして使用し、そのクラスの新しいアイテムを作成する
私は、この両方から継承した抽象クラスを作成しました。
これらのAPIを使用する別のクラスを作成しようとしていますが、どのAPIを使用するか気にしたくありません。
抽象クラスをパラメータとして渡して、APIの1つとして使用するにはどうすればよいですか?
良い方法がありますか?
コード例:
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();
}
}
あなたがこれまで持っているコードを提供してもらえますか? –
サンプルコードが追加されました – Sophex
'Activator.CreateInstance'を使うことができましたが、ファクトリーを持つことはより安全です。 –