ICloneable對象(的視圖存儲器點)是否有之間的差:從視存儲器點 1- return X.Clone();
和 2- Y=X.Clone(); return Y;
?返回C#
Q
返回C#
0
A
回答
0
雖然編譯器可能會很好地優化它,但它們之間存在潛在的差異。仍然會創建一個對象 - 所有你正在做的事情(最壞的情況)是創建一個額外的引用,然後很快就超出範圍。
任何差異都可以忽略不計,您不必擔心。 :)
+0
所以只有+ 4bytes纔會被釋放,一旦它超出範圍,對吧? –
+1
這是一個參考 - 可能是4個字節,也可能是8個,也可能是由於跟蹤過程。要點是,你不應該關心或擔心它,.NET內存管理會照顧它。有一個參考文獻很快就會超出範圍,很可能瞬間釋放任何內存。這個問題/觀點的關注,調查或擔心完全沒有任何原因。 –
1
您只是將一個指針分配給第二個案例中的同一內存位置。所以對於32位系統它是+ 4個字節。
相關問題
- 1. C++返回值
- 2. C#返回值
- 3. C++返回stringstream.str()
- 4. 返回Objective-C
- 5. C#WebUtility.HtmlDecode返回「?」
- 6. C#返回int並增加返回值
- 7. 返回true在C++中返回0
- 8. C++:通過引用返回值返回
- 9. 在C#不返回HTML回
- 10. C++ dll不返回到C#
- 11. 遞歸返回(c/C++)
- 12. C + + DLL返回到C##
- 13. C或C++返回狀態
- 14. C++從C#DLL返回-858993460
- 15. 回調從C++返回到C#
- 16. C++返回性能
- 17. c + + opencl返回CL_OUT_OF_RESOURCES
- 18. 返回數組C++
- 19. C#ObservableCollection.IndexOf(...)返回-1
- 20. Environment.GetFolderPath(Environment.SpecialFolders.ApplicationData)返回C:
- 21. 返回NULL在C++
- 22. 返回true或C++
- 23. C#GetManifestResourceStream返回null
- 24. C#GetProcAddress返回零
- 25. 返回指針C
- 26. c + +返回負串
- 27. 返回地址C
- 28. RSACryptoServiceProvider C#返回鍵
- 29. C pthread_join返回值
- 30. C# - FrameworkElement.FindName返回null
不.Net語言是垃圾收集。 –