1

FileHelper.dll用于转换listcsv文件,它工作得很好。

我总共有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这里使用。就像拥有一种通用方法而不是像上面那样的多种方法。

请对这个问题有所了解。是否可以减少方法的数量?

提前致谢。

4

2 回答 2

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

有关泛型的更多信息,请参阅 MSDN 上的这篇文章

于 2013-08-31T17:50:52.163 回答
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 回答