MOZ*_*MOZ 2 c# generics ienumerable
当使用foreach循环来循环遍历值类型集合时,是否需要获取IEnumerable<T>接口而不是非泛型IEnumerable接口,以防止不需要的中间行李指令unbox出现在已编译的代码中?
有必要吗
当然没有必要(在这种情况下必须要求).
这是个好主意:是的.在大多数情况下保存拆箱将是微优化(CPU限制数据处理的内部循环除外).但是,如果您知道某种类型的值类型的集合,那么保留该信息不会浪费时间在box-unbox循环上,并使代码更易于使用.
鉴于IDE的智能感知功能,最后一点是最有价值的.