static : 無需創建實例可直接使用, 會直到程序關閉才會釋放資源
new 對象: 每次使用時new一次對象,對象使用完會自動釋放資源, 下一次再使用時需要從新new一次
測試性能對比:
static void Main(string[] args) { var count = 1000000000; //test static class var start2 = DateTime.Now; for (int i = 0; i < count; i++) { Test.StaticSum(); } var end2 = DateTime.Now; Console.WriteLine($"normal: {end2.Subtract(start2)}"); //test class var start1 = DateTime.Now; for (int i = 0; i < count; i++) { var t1 = new Test(); t1.Sum(); } var end1 = DateTime.Now; Console.WriteLine($"normal: {end1.Subtract(start1)}"); Console.ReadLine(); }
結果如下:
結論:
在頻繁需要使用的對象, 建議使用static
注意: 內存是有限的, 好比一個容器, static每用一次就在往容器加一點, 如果濫用static, 可能會造成內存泄漏