【问题标题】:How to create a Generic list parameter which will accept all the type of classes?如何创建一个接受所有类类型的通用列表参数?
【发布时间】:2015-06-03 08:51:37
【问题描述】:
public void GenerateExcelReport(List<EventHistory> lstData)
    {
    }

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

【问题讨论】:

    标签: c#-4.0 generic-list


    【解决方案1】:

    如果你想处理所有类型的列表,唯一通用的是List&lt;T&gt;中的t

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

    文档:Generic Methods

    既然您提到要“接受所有类型的类?”,您可以添加一个约束以只允许类而不是值类型:

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

    【讨论】:

      【解决方案2】:

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

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

      然后调用它:

          GenerateExcelReport(stringList);
          GenerateExcelReport(objectList);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-22
        相关资源
        最近更新 更多