铸件有多贵?可能重复:TypeCasting的性能将一个对象转换为另一个对象有多昂贵?CustomClassinstance=GenericObjectasCustomClass是否应该避免所有成本?想看看其他人对此有何看法。我敢肯定这是非常情绪化的。您应该避免担心特定语言功能对性能的影响,除非您有具体证据(测量)表明它们确实会导致问题。您主要关心的应该是代码的正确性和可维护性。但是,一般来说,通过正确应用良好的OO编程实践和使用泛型(尤其是集合),通常可以在C#中避免不必要的转换。在确实需要执行强制转换的情况下,它不太可能成为性能瓶颈,除非您处于紧密循环中或使用可能引发无效强制转换异常的类型。大多数现实世界的性能问题来自算法选择或缺乏对平台本身的认识——而不是来自特定的语言特性。不,不应该不惜一切代价避免它。铸造不是很昂贵。当然,如果您有一个每秒运行一百万次的循环,避免转换以节省一些性能可能是有意义的,否则它不会真正导致性能问题。铸造的真正问题在于它是作弊类型的安全。如果你不小心,如果你把所有东西都放在适当的位置,引入错误或降低代码的可读性并不是很难。如果你可以使用泛型,它比转换更好。装箱和拆箱是一项昂贵的操作,应尽可能避免。问题有时是不可避免的。同样如此处的另一个答案所述,与特定的性能问题或代码可维护性相比,担心装箱是微不足道的。我完全同意这种说法。通常,在特定基础上铸造对象的成本在大型项目中较低。但是,如果您一遍又一遍地构建对象,当您发现它是性能问题的原因时,您应该尽量避免它。毕竟,从.NET1.1到2.0的主要改进之一是泛型的引入——这解决了强类型对象列表的问题(例如,ArrayList=object-based,List=typedlist)以上是C#学习教程:铸造物件贵怎么办?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
