【发布时间】:2010-07-13 21:00:01
【问题描述】:
在循环外而不是在循环内声明在循环中使用的变量是否更好?有时我会看到在循环内声明变量的示例。这是否有效地导致程序在每次循环运行时为新变量分配内存?或者 .NET 是否足够聪明,可以知道它实际上是同一个变量。
例如查看下面来自this answer的代码。
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[32768];
while (true)
{
int read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
这个修改后的版本会更有效吗?
public static void CopyStream(Stream input, Stream output)
{
int read; //OUTSIDE LOOP
byte[] buffer = new byte[32768];
while (true)
{
read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
【问题讨论】:
标签: c# .net loops variable-declaration