C#实体类中如何定义泛型集合类型的属性

我的分页类中有个属性是存放数据集的,我希望以后的数据集都是List<T>的形式,所以我定义了一个PublicList<T>XXX的属性,但是报错,... 我的分页类中有个属性是存放数据集的,我希望以后的数据集都是List<T>的形式,所以我定义了一个Public List<T> XXX的属性,但是报错,说找不到T这个类型或namespace。那我应该怎么定义这个泛型集合的属性呢,是用List<object>还是object好,我希望是约束这个属性必须是泛型集合的,如果我没有描述清楚,请留言,我继续完善 展开
 我来答
byscience
推荐于2017-09-13 · TA获得超过366个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:226万
展开全部
泛型List<T> ,这个T是一个你所希望的类型,可以为int / double/string/object等。也可以是你自己定义的类型
例如:
class Person
{
string _name;
public string Name
{
get{return _name;}
set{_name=value;}
}
}

就可以定义一个泛型集合List<Person> persons=new List<Person>();
奥术引擎
2011-08-15 · TA获得超过414个赞
知道答主
回答量:72
采纳率:0%
帮助的人:87.1万
展开全部
不知道楼主是不是这个意思:
public interface ITSource { } //用于限制T的接口

public class MyPageClass<T> //你所说的分页类
where T : ITSource //限制T必须实现了ITSource接口
{
public List<T> DataCollection { get; set; } //你的数据集
}

public class EntityA : ITSource //实现了ITSource接口的实体类
{
///some code
}

public class EntityB //未实现ITSource接口的实体类
{
///some code
}

以下是测试代码:
public class Program
{
public void Function()
{
//EntityA实现了ITSource接口,可以实例化。
MyPageClass<EntityA> EntityAColletion = new MyPageClass<EntityA>();

//EntityB没有实现ITsource接口,实例化会出错。
MyPageClass<EntityB> EntityBColletion = new MyPageClass<EntityB>();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ThinkIBM
2011-08-15 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5480万
展开全部
分页类按这样定义就可以了,也就是class名字后面加个<T>:
public class PageClass<T>{
public List<T> XXX{get;set;}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
scheshan
2011-08-15 · TA获得超过1789个赞
知道小有建树答主
回答量:958
采纳率:0%
帮助的人:1269万
展开全部
如果你看下网上存在的分页类,就会发现,他们都是定义一个实体接口(假如命名为IDataList),规定一些必须拥有的属性(ID,Name等等)..此处的泛型就是List<IDataList>..

这样子的好处是,首先对传入的数据有了约束,其次在分页方法内可以直接以接口的方式调用定义好的属性,而如果你用List<object>,还需要靠反射才能获得
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式