惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Blog of Author Tim Ferriss
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
小众软件
小众软件
博客园_首页
博客园 - 聂微东
罗磊的独立博客
Recent Announcements
Recent Announcements
U
Unit 42
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
D
DataBreaches.Net
Last Week in AI
Last Week in AI

博客园 - williambirkin

.NET平台自带的AOP机制 转自《设计模式--基于c#的工程化实现及扩展》 今天看PolicyInjection遇到的问题 我的第一个ASP.NET Ajax控件 转 事务隔离级别 转 UML 基础: 类图 关于Form.show的问题 关于where中子查询的性能问题 请高手指教 模式 转 SQL Server 索引结构及其使用 (三) 转 SQL Server 索引结构及其使用 (二) 转 SQL Server 索引结构及其使用 (一) 转 《为Windows应用创建简单的异步调用模式》 转 C#格式化数值结果表(格式化字符串) SQL游标的简单使用 转“理解VC# 2005中的字符串和正规表达式” 2个IP输入控件 Windows Forms中禁用窗体的关闭按钮 回车移动焦点 文本框事件顺序
泛型的一点思考 摘自《.NET 2.0 模式开发实战》
williambirkin · 2008-01-25 · via 博客园 - williambirkin

摘自《.NET 2.0 模式开发实战》

无论什么时候使用泛型类型,泛型的特定版本总是动态产生的。如果泛型类型是通过3种不同的类型使用,那么3种不同版本都是动态创建的。这使得执行.NET应用程序时会有更多的应用需求。大小的变化可能忽略不计,也可能非常显著,这就要看不同类型的数量,以及一个泛型嵌入到另一个泛型类型中的频率。当然C#中不可能再遇到与C++模板同样的问题(每次实例化后代码会变大,并需要2MB的内存空间)。

在某些情况下,泛型反而把错误放大了,因为广泛的使用泛型的源代码是抽象的,需要一些思考才能弄清楚所定义的是什么。简单来说,假设开发一个抽象的架构,当实现抽象时,创建了另一个抽象,当实现抽象时,又创建了另一个抽象。使这些抽象一起工作,开发者需要为它们赋予正确的类。问题是对一个人来说很清楚的事情对另一个人来说不一定是也很清楚。因此,抽象的优势丧失了。相反,当编写一个类实现一个接口并引用另一个类时,你很容易知道其目的是什么。

对泛型不要害怕也不要否定。相反,我鼓励使用泛型,因为他们能更好的解决一些问题。但是要意识到,泛型是一种很强大的机制,应该谨慎对待,适当使用。