当使用foreach
循环遍历值类型的集合时,是否有必要获取一个IEnumerable<T>
接口而不是一个非泛型IEnumerable
接口,以防止将不需要的中间行李指令取消装箱显示在已编译的代码中?
有必要吗
肯定不是必须的(在此上下文中,“必需”是必需的)。
这是个好主意吗?在大多数情况下,节省拆箱将是一个微优化(CPU限制的数据处理的内部循环中除外)。但是,如果您知道自己有某种类型的值类型的集合,那么保留这些信息就不会在“装箱-拆箱”周期中浪费时间,并使代码更易于使用。
最后一点,考虑到IDE的智能感知能力,到目前为止是最有价值的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句