在循环外而不是在循环内声明在循环中使用的变量是否更好?有时我会看到在循环内声明变量的示例。这是否有效地导致程序在每次循环运行时为新变量分配内存?或者.NET 是否足够聪明,可以知道它实际上是同一个变量。
例如,从这个答案中查看下面的代码。
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);
}
}