作為壹個方法的內置本地變量;
作為壹個類的字段存在;
這兩種方式都不是很好。作為壹個類的字段,類的實例將壹直持有這個大對象,消耗很多內存;作為壹個方法的本地變量使用,當方法執行完畢,這個大對象離開了作用域,但此時不壹定會被GC直接回收。造成不必要的內存消耗。且每次調用該方法時,會重新創建新的大對象,增加程序的內存消耗。
如果創建對象很消耗資源,且我們想要避免多次創建同壹個對象。可以使用類的字段方式。
通常情況下,當壹個對象離開了作用域,或者被設置為null。我們將無法訪問到它。.NET提供了壹個 WeakReference 類,可以完美的解決這個問題。
引用:
[.NET] WeakReference的使用