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

 我来答
ThinkIBM
2018-03-02 · TA获得超过5291个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5579万
展开全部
分页类按这样定义就可以了,也就是class名字后面加个<T>:
public class PageClass<T>{
public List<T> XXX{get;set;}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奥术引擎
2018-03-02 · TA获得超过414个赞
知道答主
回答量:72
采纳率:0%
帮助的人:88.9万
展开全部
不知道楼主是不是这个意思:
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>();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最绅士的痞子灬
2018-05-29 · TA获得超过2.9万个赞
知道小有建树答主
回答量:146
采纳率:100%
帮助的人:2.9万
展开全部

1、类型,就是用来描述数据在计算机里“存储的格式”。例如,5与“5”,对人来说是一码事,对计算机来说就是两码事,因为它们储存在计算机里面的“格式”不一样。因为C#是一种强类型语言,你得在使用数据前,明确告诉C#这些数据的“格式”,也就是类型。

2、简单点、不是很全面地来解释范型,范型犹如一个“容器”类,用来装载一些“已知的基本类型”的类,这些被装载的基本类,是明确的、简单的、基本类型的类。

3、例如,一个范型集合类,里面可以“装载”一些已明确为string类型的类,那就是List<string>;反之,如果“装载”着没有明确类型的类,比如List<Object>,语义没问题,用起来也差别不大,但那就不是范型了!

4、范型“装载”着已明确类型的类,所以主要两个好处:

一是,可以更容易实现类型安全,减少各种程序错误。例如,你不经意间为List<string>增加一个int类型元素时,程序就会尽职地报错,而List<Object>就不会报错了,增加了产生未知错误的几率。

二是,大家知道集合啊,数组啊,都是引用类型,如果它们“装载”值类型的类时,可能会产生装箱与拆箱操作(可以理解为值类型与引用类型互转),而范型能避免这个操作所带来的性能损失,记住哦,频繁地装箱与拆箱操作,会带来比较严重的性能问题滴。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式