1

FileHelper.dllファイルへの変換に使用しlistていcsvますが、完全に機能しています。

完全に、ファイル変換を処理するための 9 つのリストと対応する9 つのメソッドがあり、将来的には成長する予定です

ここでは、3 つの方法のみを示しました。

//-----Transaction.csv
public DateTime ExportResultsToCsv(string filePath, string HeaderLine, List<RetailTransaction> retailTxnList)
   {
      engine = new FileHelperEngine(typeof(RetailTransaction)) { HeaderText = HeaderLine };
      engine.WriteFile(filePath, retailTxnList);
            return DateTime.Now;
   }

//-----ConcessionSale.csv
public DateTime ExportResultsToCsv(string filePath, string HeaderLine, List<ConcessionSale> concessionSaleList)
    {
      engine = new FileHelperEngine(typeof(ConcessionSale)) { HeaderText = HeaderLine };
      engine.WriteFile(filePath, concessionSaleList);
      return DateTime.Now;
    }

//-----MerchandiseSale.csv
public DateTime ExportResultsToCsv(string filePath, string HeaderLine, List<MerchandiseSale> merchandiseSaleList)
  {
     engine = new FileHelperEngine(typeof(MerchandiseSale)) { HeaderText = HeaderLine };
     engine.WriteFile(filePath, merchandiseSaleList);
     return DateTime.Now;
  }

グーグルでいくつかの概念を読みGenericsましたが、アイデアがわかりません。私の懸念は、ここで使用することは可能Genericsです。上記のような多くのメソッドではなく、1 つのジェネリック メソッドを持つように。

この問題に光を当ててください。メソッドの数を減らすことは可能ですか?

前もって感謝します。

4

2 に答える 2

2

これは、ジェネリックを使用できる状況です。型変数を使用します。通常は T が使用されるため、よく目にします。この変数は、リストのタイプを置き換えます。その結果、メソッドを呼び出すときにリスト タイプを渡す必要があります。

public DateTime ExportResultsToCsv<T>(string filePath, string HeaderLine, List<T> SaleList)
{
 engine = new FileHelperEngine(typeof(T)) { HeaderText = HeaderLine };
 engine.WriteFile(filePath, SaleList);
 return DateTime.Now;
}

そして、次のように簡単に呼び出すことができます。

ExportResultsToCsv(filePath,Header,salesList)
于 2013-08-31T17:52:51.167 に答える