哪个最适合表现

时间:2011-08-31 10:18:14

标签: c# performance

任何人都可以为我阐明这一点。 哪个性能更好

    foreach (DataRow row in prodStockLevels.Rows)
    {
       string stock = row["stpt_Stock"].ToString();
       textbox.text = stock;
    }

    foreach (DataRow row in prodStockLevels.Rows)
    {
       textbox.text = row["stpt_Stock"].ToString();
    }

即使数据表很大,也会有很大差异。只是想知道如果直接传递数据,性能会更好。

3 个答案:

答案 0 :(得分:4)

效率上没有明显的差异 - 我怀疑它甚至可衡量,如果它存在

您分配给局部变量的事实基本上是无关紧要的。表达式row["stpt_Stock"].ToString()的值将以任一方式结束于堆栈。唯一的区别是该堆栈槽是否有名称。

在调试器中,它可能会产生微小但仅仅是可衡量的差异,因为它可能会产生一些额外的影响 - 但肯定不足以担心。

我想我会更加担心你会反复为同一个textBox.Text属性分配值 - 只有最后一个才真正具有相关性。你最好只获取 last 行...

答案 1 :(得分:1)

没有区别。编译后可能完全相同的代码。

答案 2 :(得分:1)

没有区别。
以下内容将比两者都快:

 textbox.text = prodStockLevels.Rows.Last()["stpt_Stock"].ToString();