レポートを生成するための具体的なサブクラス (.txt、.csv、.xls) を持つファクトリがあります。具体的なクラスのインターフェイスをジェネリックにして、diff 型のパラメーター (DataTable の代わりに) を渡すことができるようにしたいと考えています。 DataSet または他のクラス インスタンスを引数として使用する必要があります)。これが私のインターフェースです。
interface IReportCreator
{
bool Create(DataTable dt);
}
私はインターフェースを一般的なものにしました..以下のように
interface IReportCreator<T>
{
bool Create(T args);
}
ここで私の質問は、以前のファクトリ コードのファクトリからジェネリック インターフェイスを返す方法です。
class Factory
{
static IReportCreator GetReportCreator(string type)
{
IReportCreator reportCreator = null;
if(type == "txt")
reportCreator = new TextCreator();
if(type == "csv")
reportCreator = new CSVCreator();
}
}
そして、cientで..私はこのように呼び出します IReportCreator repCreator = Factory.GetReportCreator("txt"); repCreator.Create(// 引数); // ここで、ジェネリック クラス Factory として作成する必要がある引数 { // ここでインターフェースを返す方法がわかりません.. }
どんな助けでも大歓迎です..