【原創】代碼性能優化之創建對象


類初始化在代碼中隨處可見,但是用靜態class和用實例class時應該遵循那些原則呢?

1、如果一個類定義成實例的,那么這個類的全部成員盡量都定義成實例的

2、如果一個類是要共享一些成員,那么所有成員都定義成靜態的,類本身也定義成靜態的

有些時候我們可能會實例成員和靜態成員混合定義,但是不建議這樣做,比如下面代碼

public class Person
{

public int Age = 20;

public void T1()
{

}

public static void T2()
{
}

}

 

 

public static void Main()
{
       B.T2();

       var instance=new Person();

}

這個類充當了靜態類和實例類兩種角色,當調用Test()時調用B.T2()系統會自動創建Person的一個實例保存在內存中,這個對象的生命周期是隨着應用程序的結束而結束,不隨着Test()執行完而釋放掉

而另一個自己創建的instance實例對象會隨着Test()執行完而釋放掉。但是系統自動創建的實例托管堆中包含着的成員Age和T1()一直占用着的內存地址得不到釋放,也不能被調用。所以不建議大家使用混合類。

 會面還會完善,謝謝大家支持!

你有什么觀點,請指教,歡迎補充!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM