C#實例化和靜態(tài)類對象調用對比
前言:
在編程時,什么時候用實例化對象,什么時候用靜態(tài)類對象,這個值得我們思考,它們之間所占的內存和生命周期又是如何,框架本身的回收機制是什么
1、對比效果
實例化對象不斷調用多少次,都會重新初始化值調用,說明實例化對象的生命周期是調用完成后就結束
靜態(tài)類對象,靜態(tài)類下的靜態(tài)成員會一直占用在內存且只實例化一次,說明靜態(tài)類成員的生命周期是從調用到程序結束或機制回收
場景使用:
- 1)靜態(tài)類或成員:數據庫連接字符串,可以定義為靜態(tài),調用和獲取比較頻繁
- 2)實例化:登錄操作,一般登錄操作不會太頻繁



- 重新啟動對應的IIS站點
在不停的刷新某一個頁面時,內存是按規(guī)律的0.1MB增加 ,刷新到一定次數后,內存沒有明顯的增加,甚至是不變,下圖的.NET Core Host進程有兩個,是指兩個站點,且有被外部或內部在調用,否則是不顯示狀態(tài)


2、實例化代碼
public string init = "實例化:hello";
public bool flag = false;
public int num = 0;
public void Test(string one)
{
string test = "";
if (!flag)
{
flag = true;
num += 1;
test = "【首次輸出】" + init + one + num;
}
else
{
num += 1;
test = init + one + num;
}
LmyLogHelper.Debug(test);
}3、靜態(tài)類代碼
public static string init = "靜態(tài)式:hello";
public static bool flag = false;
public static int num = 0;
public static void Test(string one)
{
string test = "";
if (!flag)
{
flag = true;
num += 1;
test = "【首次輸出】" + init + one + num;
}
else
{
num += 1;
test = init + one + num;
}
LmyLogHelper.Debug(test);
}到此這篇關于C#實例化和靜態(tài)類對象調用對比的文章就介紹到這了,更多相關C#實例化和靜態(tài)類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

