在循環之外的循環中聲明一個變量,而不是在內部聲明是更好的嗎?有時候我會看到一些變量在循環中聲明的例子。這是否有效地導致程序在每次循環運行時爲新變量分配內存?或者,.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