如何创建一个接受所有类的类的通用列表参数?

时间:2015-06-03 08:51:37

标签: c#-4.0 generic-list

public void GenerateExcelReport(List<EventHistory> lstData)
    {
    }

我使用上面的列表作为参数(即类型列表&#34; EventHistory&#34;类)如果我想传递所有类型的列表,那么如何创建列表参数一般?

2 个答案:

答案 0 :(得分:1)

如果您想处理所有类型的列表,那么通用的唯一内容就是t中的List<T>

public void GenerateExcelReport<T>(List<T> lstData)
{
    // ...
}

文档:Generic Methods

既然您已经提到要接受所有类型的类型?&#34;,您可以添加一个约束以仅允许类而不是值类型:

public void GenerateExcelReport<T>(List<T> lstData) where T: class
{}

答案 1 :(得分:0)

您需要将T的泛型类型参数添加到您的方法中:

def show(slug: String) = Action.async { implicit rs =>

  def barsOf(f: Foo): Seq[Bar] = barDAO.findByFooId(f.id)

  val f = fooDAO.findBySlug(slug)  // f is of type Option[Foo]

  f.fold(
    NotFound,
    foo => Ok(views.html.foobar(foo, barsOf(foo))
  )

}

然后叫它:

 void GenerateExcelReport<T>(List<T> list){
 }