2011-07-18 52 views
0

ICloneable對象(的視圖存儲器點)是否有之間的差:從視存儲器點 1- return X.Clone(); 和 2- Y=X.Clone(); return Y;返回C#

+1

不.Net語言是垃圾收集。 –

回答

0

雖然編譯器可能會很好地優化它,但它們之間存在潛在的差異。仍然會創建一個對象 - 所有你正在做的事情(最壞的情況)是創建一個額外的引用,然後很快就超出範圍。

任何差異都可以忽略不計,您不必擔心。 :)

+0

所以只有+ 4bytes纔會被釋放,一旦它超出範圍,對吧? –

+1

這是一個參考 - 可能是4個字節,也可能是8個,也可能是由於跟蹤過程。要點是,你不應該關心或擔心它,.NET內存管理會照顧它。有一個參考文獻很快就會超出範圍,很可能瞬間釋放任何內存。這個問題/觀點的關注,調查或擔心完全沒有任何原因。 –

1

您只是將一個指針分配給第二個案例中的同一內存位置。所以對於32位系統它是+ 4個字節。