データベースからデータをロードするクラスがあります。このクラスには、実際にデータをロードして、DataTableの形式で呼び出し元の関数に返す関数があります。
次に、DataTableを反復処理し、各行に基づいてさまざまなクラスのオブジェクトを作成します。
私がやりたいのは、フローを変更して、作成するオブジェクトのタイプを判別できるようにデータをロードする関数を呼び出すことができるようにすることです。これが私がかけたい電話のタイプを示すための2つの疑似電話です:
List<Teacher> =this.loadData(String sql, Hashtable data, {teachers class});
List<Student> = this.loadData(String sql, Hashtable data, {students class});
現在、教師と生徒のクラスは共通のクラスを拡張していません。しかし、それが役に立ったら、私はそのような変更を加えることができます。
リー
アップデート:
これまでに回答してくださった皆様、ありがとうございました。どのソリューションも、私が持っているコードを実際に改善したり、プログラミングスキルを超えたりすることはないようです。
私はこの投稿を見つけました:文字列からクラスのインスタンスを作成します
そこで誰かが文字列からクラスを作成するための次のテクニックに言及しています:System.Reflection.Assembly.GetExecutingAssembly()。CreateInstance(string className)
ただし、結果のオブジェクトを実際のクラスにキャストする必要があるとも言われています。したがって、(キャストする前に)結果のクラスをリストに入れるかどうか疑問に思います。そうすると、オブジェクトが自動的にキャストされますか?