我在StackOverflow
中看到以下内容void SomeMethod<T>(List<T> someList)
{
if (typeof(T) == typeof(c1))
{
// etc
}
}
我试图以某种方式将其纳入以下内容。我正在尝试使用泛型
组合两个非常相似的用户控件public partial class UcCustomers : System.Web.UI.UserControl
{
List<Customer> _list;
public void SetDataSource(List<Customer> customers){
_list = customers
}
}
public partial class UcProducts : System.Web.UI.UserControl
{
List<Products> _list;
public void SetDataSource(List<Product> products){
_list = products
}
}
问题是,我想设置member_list变量但它不允许我这样做,除非我这样做:
IEnumerable _list;
但是我不能对这种类型的变量使用。我的目标是有一个GridView用户控件,它有一些非常基本的CRUD功能。
我认为SetDataSource可以接受一个通用的列表,并与它作为一个成员变量工作。
我认为具有约束的泛型类将是您所需要的。如果您的Products
和Customer
不是由UserControl
派生的,您只需修改where
子句。
public class Uc<T> : UserControl where T : UserControl
{
private List<T> _list;
public void SetDataSource(List<T> list)
{
_list = list;
}
}