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

推荐订阅源

博客园_首页
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
Y
Y Combinator Blog
美团技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
S
SegmentFault 最新的问题
IT之家
IT之家
Recent Announcements
Recent Announcements
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
WordPress大学
WordPress大学
博客园 - Franky
L
LangChain Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
博客园 - 叶小钗
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
雷峰网
雷峰网
腾讯CDC
Google DeepMind News
Google DeepMind News
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Help Net Security
Help Net Security
C
Check Point Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News and Events Feed by Topic
V2EX - 技术
V2EX - 技术
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Schneier on Security
Schneier on Security
博客园 - 聂微东
A
Arctic Wolf
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
The Exploit Database - CXSecurity.com
C
Cyber Attacks, Cyber Crime and Cyber Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Google DeepMind News
Google DeepMind News

博客园 - 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的内存空间)。

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

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