为什么不总是使用泛型?

2023-11-23

我正在阅读 SO 上关于泛型的现有帖子。如果泛型有如此多的优点,比如类型安全、没有装箱/拆箱的开销并且速度很快,为什么不总是使用它呢?为什么要使用非泛型对象来代替?

编辑(下面进一步扩展问题)

我有一点困惑。几个月前,我上次阅读有关泛型的内容时,我读到如果参数中的类型是可变的,则应使用泛型以防止错误。不过,我现在读到的似乎是泛型将实现限制为固定类型,而非泛型对象允许您在运行时定义参数类型。

请帮我看看我缺少什么?

其次,当您在团队中工作并且代码可共享时,在正确的 OOP 设计(泛型等)中使用这些类型的构造会很有帮助。对于一个规模较小的孤独程序员来说,谁知道参数中必须包含什么类型,似乎没有必要担心,并且使用泛型或非泛型类型之间没有什么区别。这准确吗?


一般来说你should- 然而,有时(特别是在编写库代码时)不可能(或者肯定不方便)了解调用类型(即使在T),所以非泛型类型(主要是接口,例如IList, IEnumerable)非常有用。数据绑定就是一个很好的例子。的确,anything通过使用泛型,涉及反射的操作通常会变得更加困难,并且因为(通过反射的本质)你已经lost有了这些好处,您不妨直接使用非通用代码。反射和泛型并不是很好的朋友at all.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么不总是使用泛型? 的相关文章

随机推荐