C#泛型编程指导原则(二)

原创 2007年09月14日 13:28:00

Item 2: Replace Objects with Type Parameters使用类型参数取代Object类型

在使用泛型之前,程序员一般都依赖于Object类型来获得通用性。如果有这样一个类或者方法:共性的功能,会被应用到不同的类型上,你将由很少的选择来处理。如果没有一个共同的基类或者接口,仅有的方法就是使用通用的类型Object

如:

public object SendMsg(object sender, object param) {}

当然,这样做是以牺牲类型安全为代价来换取的通用性。

泛型为解决这种类型安全问题引入了一个完美的解决方法,通过使用泛型,可以在类型安全和通用性之间得到平衡。

上面的方法可以改成如下的模式:

public K SendMsg<I, J, K>(I sender, J param) {}

这里来自经验的最基本的规则就是:在代码中应该尽量不使用Object类型,当遇到Object类型时,都应该先问问自己:泛型能否用在这里来减少对Object的依赖。

 

相关文章推荐

C#数据结构和算法学习系列二----泛型编程

面向对象编程的问题之一就是所谓“代码膨胀”的特征。为了说明方法参数所有可能的数据类型而需要重载某种方法或重载一套方法集合的时候,就会发生某种类型的代码膨胀。代码膨胀的解决方案之一就是使某个值呈现多种数...
  • nlx0201
  • nlx0201
  • 2011年09月11日 20:03
  • 908

C# 2.0中泛型编程思想分析

  • 2009年11月23日 20:23
  • 20KB
  • 下载

C#类库处理异常指导原则

作为一个类库开发的新手,在面对Exception时,一直不知道所措。阅读了的异常处理部分,记录下一些基本的原则,供日后查询并与大家分享。欢迎高手指点一二。 一、善用finally块  ...
  • kmguo
  • kmguo
  • 2013年11月28日 23:54
  • 2440

XML 泛型 控件 的C#编程示例

  • 2007年12月29日 15:33
  • 273KB
  • 下载

C# 2.0中泛型编程初级入门教程

  • 2009年09月21日 17:43
  • 9KB
  • 下载

pp看书笔记---C#高级编程第九版 第五章 【泛型】

写在前面: 简单说一下看书的感受,这一章看了五六遍,一个星期,反反复复看,工作休息没事的时候看看,玩手机累的时候看看,躺着看电视的时候看看,终于梳理通了 看书的感受是: 1.书中有些话太过于精简...

(面试)泛型的优点(C# 编程指南)

在公共语言运行库和 C# 语言的早期版本中,通用化是通过在类型与通用基类型 Object 之间进行强制转换来实现的,泛型提供了针对这种限制的解决方案。通过创建泛型类,您可以创建一个在编译时类型安全...
  • hyhyct
  • hyhyct
  • 2012年04月16日 23:26
  • 332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#泛型编程指导原则(二)
举报原因:
原因补充:

(最多只允许输入30个字)