T をインターフェイス タイプとして渡すことができるジェネリック メソッドが 1 つあります。メソッドは、T 型に対応するデータのリストを返します。このメソッドには 20 ~ 25 の同じ条件があり、ロジックを最適化するにはどうすればよいですか。
クラスはインターフェースを実装します。example Student クラスは IStudent インターフェイスを実装しています。
public ObservableCollection<T> GetAll<T>()
{
try
{
if (typeof(T) == typeof(IStudent))
{
return GetAll<T, Student>();
}
else if (typeof(T) == typeof(IZone))
{
return GetAll<T, Zone>();
}
else if (typeof(T) == typeof(IEmployee))
{
return GetAll<T, Employee>();
}
else if (typeof(T) == typeof(ICourse))
{
return GetAll<T, Course>();
}
}
}
ここで、呼び出し元はインターフェイスの型 T を渡し、T の型をチェックします。他の関数 T と T のリストを返すクラスに渡します。基本クラスの他の関数は変更できません。誰かが私に同じことを提案できますか?