2011-12-26 70 views
1

我看到的東西今天談到這一點:多個對象VS改變一個對象

aClass something; 
while (condition) { 
    something = new aClass(); 
    ... 
} 
while (condition) { 
    aClass something = new aClass(); 
    ... 
} 

它說你應該使用第二個,而不是第一個。這是真的嗎?如果是這樣,爲什麼?

+0

有人應該改變這個問題的標題。 – 2011-12-26 22:57:39

+0

我的歉意,我的詞彙量不是很好。 – Stripies 2011-12-26 22:58:22

+0

沒關係,我的也不是,否則我會自己重命名:) – 2011-12-26 23:00:46

回答

1

第二種方法僅保留something變量僅在該特定循環迭代的範圍內。
如果要使用循環外的對象和/或保持迭代之間保存的更改,則必須使用第一種方法。另外,第二種方法沒有定義多個變量,編譯器通常會以確保只定義一個變量的方式對其進行優化。

4

您的第一個示例將無用變量泄漏到外部作用域中。

1

您應該使用第二個示例,除非您需要在while循環完成後使用該對象。如果你不需要外部作用域中的變量,最好在它將被使用的最窄範圍內(在循環內部)聲明它。這簡化了維護程序員必須理解它的代碼。

+0

請您詳細說明原因嗎? – Stripies 2011-12-26 22:59:56