泛型方法

在C#中,当你看到public static DataTable ToDataTable<T>(List<T> items)这样的方法定义时,它是一个泛型方法。这个方法的语法名称是“泛型方法”。

泛型方法解释
泛型‌:允许你在、接口或方法中使用类型参数(也称为类型占位符)。这些类型参数在方法被调用时实际指定。
‌泛型方法‌:这是使用泛型类型的具体方法。它允许方法操作多种类型的数据,而不需要为每种类型编写一个单独的方法。
泛型方法的组成部分
‌泛型类型参数‌:在尖括号<>中定义,例如<T>。这里的T是一个占位符,代表一个具体的类型,它在方法被调用时由调用者指定。
‌方法签名‌:包括方法的返回类型、方法名和参数列表。例如,public static DataTable ToDataTable<T>(List<T> items)
示例
假设你有一个Person类,并且你想将一个Person对象的列表转换为一个DataTable,你可以使用如下泛型方法来做到这一点:

 

public static DataTable ToDataTable<T>(List<T> items)
{
    DataTable table = new DataTable();
    // 假设T是Person类,并且你有一些方式来获取Person类的属性
    PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
    foreach (PropertyInfo prop in props)
    {
        table.Columns.Add(prop.Name, prop.PropertyType);
    }
    foreach (T item in items)
    {
        var values = new object[props.Length];
        for (int i = 0; i < props.Length; i++)
        {
            values[i] = props[i].GetValue(item, null);
        }
        table.Rows.Add(values);
    }
    return table;
}

使用上面的泛型方法

List<Person> people = GetPeopleList(); // 假设这是获取Person对象列表的方法
DataTable table = ToDataTable(people); // 使用泛型方法转换列表到DataTable

在这个例子中,ToDataTable是一个泛型方法,它可以根据传入的列表类型(在这个例子中是Person)自动处理转换过程。这种方法提高了代码的复用性和灵活性。

posted @ 2026-07-22 21:13  techNote  阅读(8)  评论(0)    收藏  举报