我看到的東西今天談到這一點:多個對象VS改變一個對象
aClass something;
while (condition) {
something = new aClass();
...
}
while (condition) {
aClass something = new aClass();
...
}
它說你應該使用第二個,而不是第一個。這是真的嗎?如果是這樣,爲什麼?
我看到的東西今天談到這一點:多個對象VS改變一個對象
aClass something;
while (condition) {
something = new aClass();
...
}
while (condition) {
aClass something = new aClass();
...
}
它說你應該使用第二個,而不是第一個。這是真的嗎?如果是這樣,爲什麼?
第二種方法僅保留something
變量僅在該特定循環迭代的範圍內。
如果要使用循環外的對象和/或保持迭代之間保存的更改,則必須使用第一種方法。另外,第二種方法沒有定義多個變量,編譯器通常會以確保只定義一個變量的方式對其進行優化。
您的第一個示例將無用變量泄漏到外部作用域中。
您應該使用第二個示例,除非您需要在while循環完成後使用該對象。如果你不需要外部作用域中的變量,最好在它將被使用的最窄範圍內(在循環內部)聲明它。這簡化了維護程序員必須理解它的代碼。
請您詳細說明原因嗎? – Stripies 2011-12-26 22:59:56
有人應該改變這個問題的標題。 – 2011-12-26 22:57:39
我的歉意,我的詞彙量不是很好。 – Stripies 2011-12-26 22:58:22
沒關係,我的也不是,否則我會自己重命名:) – 2011-12-26 23:00:46