2017-04-16 43 views
-1

考虑带有1000行的Gridview预先声明(foreach循环)迭代器会影响性能吗?

如果我想通过GridView的每一行迭代,我能做到这一点有两种方式:

foreach (GridviewRow row in gridview1.Rows) { 
    // the variable row is declared in the body of the for loop. 
    // do stuff with current row 
} 

另一种方法是:

GridviewRow row; 

foreach(row in gridview1.Rows) { 
    // here, the variable row was declared before for loop. 
    // do stuff with current row. 
} 

我想知道,如果两个他们将在内存分配/ CPU性能等方面比其他方面“更好”。

+0

如何回合简单地尝试两个并检查生成的IL?我真的不确定什么可以最小化地担心效率差异,如果有的话,在其中一个或另一个之间...... – InBetween

+0

我的意思是:如果我使用某种方式或其他方式会更好吗?编辑我的问题以清除混淆。 @InBetween – Ahmad

+0

性能?在.NET 4之前,一个简单的'foreach'产生了对XNA的巨大打击的拳击垃圾; Mono和Unity3D。只有团结[最近解决了这个](https://unity3d.com/learn/tutorials/topics/performance-optimization/optimizing-garbage-collection-unity-games)。你可能需要考虑使用'for'循环,具体取决于你的.NET版本 – MickyD

回答

0

不确定关于生成的IL代码,但没有看到两个发布方法之间的任何区别响这个事实,你在这里使用foreach循环而不是for循环。

+0

我编辑了我的问题,使我的查询更清晰。 – Ahmad

+0

@Ahmad,正如答案中所提到的......没有区别 – Rahul