2013-03-29 54 views
0

因此,我正在爲一個類的MySQL數據庫製作一個客戶端程序,並且我在窗體類的頂部聲明瞭一些變量,這些變量在窗體的整個生命週期中使用和重用。每次變量的習慣,我只是做這樣的事情:C#中的垃圾收集#

variableName = new VariableClass(); 

,然後用它,主要與數據集/表。我想知道的是,我應該明確釋放內存,然後再打電話給新的或C#爲我照顧這個嗎?

回答

5

沒有必要在C#中顯式釋放.Net對象。它在CLR上運行,這是一個垃圾收集環境,因此這些物品將爲您清理。

這就是說......從你的問題來看,你是不是很清楚你是否將這些分配爲字段或當地人。如果您在字段中分配它們,並且只在一個函數中使用它們,那麼您應該將該聲明移至本地。雖然內存不會泄漏,但您將會抓住物體的時間遠遠超過所需的時間。這不必要地增加了應用程序的內存佔用。

+0

使用這些DataSets/Tables的主要方式是從我的數據庫中的表中檢索名稱列表,並使用它們填充下拉菜單,然後在用戶選擇說的時候構建SQL查詢,下拉並希望查看相關的病史或保險信息。編輯:記住,每次我需要它們時檢索這些名稱會更好,還是隻按照我擁有的方式保存它們,然後將它們取回一次並重新使用。 – joshuaegclark

0

它取決於變量的類是什麼。如果它使用需要處置的資源,或者它使用非託管資源,則應該實施IDisposable並確保它們被正確處置。如果沒有,你可以依靠垃圾收集器來做它的事情。