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

来源:互联网 发布:aws和阿里云 编辑:程序博客网 时间:2024/05/01 11:44

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的依赖。

 
原创粉丝点击