泛型方法
在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)自动处理转换过程。这种方法提高了代码的复用性和灵活性。

浙公网安备 33010602011771号