一尘不染

在foreach循环内部或外部声明变量:哪个更快/更好?

c#

哪个更快/更好?

这个:

List<User> list = new List<User>();
User u;

foreach (string s in l)
{
    u = new User();
    u.Name = s;
    list.Add(u);
}

或者这个:

List<User> list = new List<User>();

foreach (string s in l)
{
    User u = new User();
    u.Name = s;
    list.Add(u);
}

我的新手开发技能告诉我第一个更好,但是我的一个朋友告诉我我错了,但是不能给我第二个更好的理由。

表现上有什么区别吗?


阅读 317

收藏
2020-05-19

共1个答案

一尘不染

在性能方面,两个示例均编译为相同的IL,因此没有区别。

第二个更好,因为如果u仅在循环内部使用它,则可以更清楚地表达您的意图。

2020-05-19