-2 c# performance parameter-passing
避免在C#中装箱的一种方法是通过引用传递值类型.我已经读过,通用方法也可以用来避免装箱.虽然仅仅为了避免装箱而编写通用方法似乎有点极端 - 如果类型总是相同的.
我的问题是 - 如果编写代码以获得最佳性能并避免装箱,通过引用传递所有值类型(如int)是合理的 - 即使所讨论的方法只是处理对象而不是创建它?这有什么缺点吗?
避免拳击值类型的最佳方法是:只需将它们用作值!
我认为你完全误读了这个参考.它说的是使用ref参数不会导致拳击.它并不是说它是一种avoid拳击方式.
当在引用上下文中使用值类型(例如,强制转换为Object)时,就会发生Boxing.本文说,通过引用传递参数不能与引用类型的概念混淆,但混淆它们似乎正是你所做的.
280Z28摘要:
换句话说,避免以下两个操作:
object(或将值作为类型的方法参数的参数传递object).IEnumerable),或将值作为参数传递给作为接口类型的方法参数.此规则有例外(例如,调用一些通用方法),并且有些情况下可以在其他上下文中进行装箱,但这些是在您尝试避免不必要的值类型装箱时要注意的主要情况.
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |