为了泛型而泛型?

IT_zen 2008-01-28 11:13:18
一直有个问题,不知道在什么地方用泛型?
书上的或者其它的例子,看起来像是为了泛型而泛型?
各位高手赐教一下,究竟什么情况下用泛型?
...全文
171 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng_feng001 2008-02-26
  • 打赏
  • 举报
回复
6楼说的太好了,解除了我的许多疑惑。
shinaterry 2008-01-28
  • 打赏
  • 举报
回复
^o^
chengqscjh 2008-01-28
  • 打赏
  • 举报
回复
xue xi 6 lou
yangtzeu 2008-01-28
  • 打赏
  • 举报
回复
大家好才是真的好~
benyouyong 2008-01-28
  • 打赏
  • 举报
回复
用了泛型,它好我也好。
(*^__^*)
zxkid 2008-01-28
  • 打赏
  • 举报
回复
刚才在网上看到的

何时何地使用泛型

问题:
你想在一个新的项目中使用,或在现有的项目上把非泛型的类型转换成它们的泛型表示。但是,你却不知道自己为什么想这样做,并且你也不知道哪些非泛型类型应该被转换成它们的泛型表示。

解决方法:

决定何时何地使用泛型,你需要考虑以下几件事:
○你的类型将包含或者以多种不确定的数据类型来运行吗?如果是这样,那么创建一个泛型将比创建一个非泛型提供很多好处。如果你的类型将只以一种确定的类型运行,那么你就没必要去创建一个泛型了。
○如果你的类型是值类型,那么就会发生装箱和拆箱操作,你应该考虑使用泛型去避免这些操作。
○跟泛型关联的强类型检查会导致很快就检查到错误(比如在编译时,而不是在运行时),因此,缩短你的纠错周期。
○随着你要写好几个类去处理不同的数据类型的运行(比如一个ArrayList只保存StreamReaders,而另一个则只保存StreamWriters),你的代码是否受到“臃肿”的困扰?泛型很容易做到只写一次代码,就可以实现运行每种类型进行工作。
○泛型会得到非常清晰的代码。去除代码的臃肿,对你的类型强制使用强类型检查,你的代码会更容易阅读和理解。

讨论:
在大部分情况,你的代码都是适合使用泛型的。泛型会产生更高的代码重用,更好的性能,强类型检查和易读的代码。
lextm 2008-01-28
  • 打赏
  • 举报
回复
其他地方要不要用泛型就很值得商榷了,因为泛型的主要应用就是在Collections上面。
syliuxybj 2008-01-28
  • 打赏
  • 举报
回复
泛型艇好的 我经常使用泛型 代码写起来方便~~~~~
bird1983 2008-01-28
  • 打赏
  • 举报
回复
泛型在 ORM 中也有很大的用处。将数据库的数据实例化成一个对象。使用泛型数组可以直接作为数据源绑定在控件中。
lextm 2008-01-28
  • 打赏
  • 举报
回复
由于Silverlight 2.0为了减少CLR代码体积将不会带非泛型的Collections支持,所以为了更好的跨平台,建议有条件的话将所有非泛型的代码改为泛型的。虽然也有一些情况下你会觉得写List<object>和原来的List没有什么区别,但是在引用命名空间的时候同时引用System.Collections和System.Collections.Generics看起来也不太舒服。
wuyi8808 2008-01-28
  • 打赏
  • 举报
回复
泛型使一个方法(函数)可以用于多种数据类型。如Max()。
avrilxu 2008-01-28
  • 打赏
  • 举报
回复
对于一个有多个属性的对象,最好用泛型
APPLESUCH5 2008-01-28
  • 打赏
  • 举报
回复
泛型,我还没用过。做个标记吧。
vrhero 2008-01-28
  • 打赏
  • 举报
回复
泛型的缺点是不能插入空值.其它都好...
--------------
那是你的缺点...不是泛型的缺点...


List<string> s = new List<string>();
s.Add(null);

List<DateTime?> d = new List<DateTime?>();
d.Add(null);
blestcc 2008-01-28
  • 打赏
  • 举报
回复
自从用了泛型,腰不酸了背不疼了腿也不抽筋了,走路啊,也有劲儿了
liuyun1987 2008-01-28
  • 打赏
  • 举报
回复
泛型的缺点是不能插入空值.其它都好...
rangeon 2008-01-28
  • 打赏
  • 举报
回复
用了都说好

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧