C# 循环内部变量声明
本帖最后由 Cool_Breeze 于 2021-4-14 14:46 编辑string 类型
NewDir需要在循环外部声明吗?
在内部声明对性能有没有影响?
int 类型呢?
foreach (string n in Directory.GetDirectories(Old, "*", SearchOption.AllDirectories))
{
string NewDir = n.Replace(Old, New); // NewDir需要在循环外部声明吗?
Directory.CreateDirectory(NewDir);
} 这种情况我一般是在外部声明变量 跟变量的类型并没有关系
这属于局部变量,局部变量的作用域范围在{}内,即只在foreach内可访问,所以如果你要在foreach外使用NewDir的话是需要定义在外面的,如果只在foreach中使用那定义在哪里就无所谓了 一般情况下,哪里都无所谓,个人喜好而已 外面用不到的话 里面定义也无所谓 试过从循环内部一直new 对象,明显可以看到比在循环外创建对象要慢,不过string类型好像差别不大 Rioad 发表于 2021-4-13 14:47
试过从循环内部一直new 对象,明显可以看到比在循环外创建对象要慢,不过string类型好像差别不大
对呀,不知道编译器是否会自动优化。 Rioad 发表于 2021-4-13 14:47
试过从循环内部一直new 对象,明显可以看到比在循环外创建对象要慢,不过string类型好像差别不大
放到里面和外面试了一下,感觉没有什么变化,看来写在循环内部也一样 本帖最后由 只为改变世界 于 2021-4-13 15:51 编辑
这个重点不在于全局变量或者局部变量的关系,建议放在循环外面,每次都要开辟一次内存给字符串,
而且有时候变量值会异常的。
不是程序写好能用就行的,健壮性和性能也同样重要。
页:
[1]