我看到了以下here in 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
}
}
问题是,我想设置那个成员_list变量,但除非我做了类似的事情,否则它不会让我:
IEnumerable _list;
但是我不能在这种变量中使用lambda。我的目标是拥有一个具有一些非常基本的CRUD功能的GridView用户控件。
我认为SetDataSource可以接受通用List并将其作为成员变量使用。
答案 0 :(得分:0)
我认为具有约束的泛型类将是您所需要的。如果您的Products
和Customer
不是来自UserControl
,则可以修改where
子句。
public class Uc<T> : UserControl where T : UserControl
{
private List<T> _list;
public void SetDataSource(List<T> list)
{
_list = list;
}
}