在循环之外的循环中声明一个变量,而不是在内部声明是更好的吗?有时候我会看到一些变量在循环中声明的例子。这是否有效地导致程序在每次循环运行时为新变量分配内存?或者,.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);
}
}
我有一个范围的问题达成一致。当有人不得不阅读旧代码(或其他人的代码)时,最好有适当范围的变量。当我离开范围时,我不再担心该变量的最后一个值是什么。 – Torlack 2010-07-13 21:21:43
@Torlack:我会编辑来解决这个问题。 – 2010-07-13 21:23:30