4
私はfuncAという関数を持つ抽象クラス(親)を持っています。 親は4つのchildernを持ち、ユーザーはアクセスするものを選択する必要があります。 私がする必要があるのは、ユーザーが選択してアクティブ化した子サブクラスのオーバーライドされたメソッドfuncAにアクセスすることです。未知の型のメソッドを取得して実行するc#
親:
public abstract class Parent
{
public string PropA {get; set;}
public string PropB {get; set;}
public DateTime PropC {get; set;}
public DateTime PropD {get; set;}
public abstract void FuncA();
}
子供:
public class ChildA: Parent
{
public string PropE {get; set;}
public string PropF {get; set;}
public override void FuncA()
{
// Some Code
}
}
メイン:
public static void Main(string[] args)
{
Console.WriteLine("Enter the type of child: ");
string type = Console.Readline();
// I need to identify which child is type, access that child's FuncA and
// run it.
}
文字列型は、既存の子として検証されます。ユーザーが存在しない型を入力する方法はありません。
反射を使用しますか? 'タイプt = Type.GetType(そのタイプ); t.GetMethod( "FuncA")。Invoke(...); ' –
私は試みましたが、Invokeはメソッドを実行するオブジェクトを要求します。私が持っているのは型だけなので、型が不明なオブジェクトを作成することはできません。 –
@EinatLugassyあなたは_できませんか、あなたは_方法を知っていませんか? –