精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 靜態(tài)類,高手不想讓你知道的 15 個真相

admin
2024年12月11日 9:25 本文熱度 382

前言

嗨,大家好!

在 C# 面向?qū)ο缶幊痰暮Q笾校悾–lass)是支撐我們代碼的重要基石,而靜態(tài)類則是這個基礎中的一塊璞玉。你可能在編程的旅途中聽說或使用過靜態(tài)類,它到底是什么呢?

簡單來說,如果一個類里僅包含靜態(tài)成員和靜態(tài)方法,那它就可以被稱為靜態(tài)類,通常我們會用 static 修飾符來標識它,例如:

/// <summary>
/// 使用 static 修飾符定義靜態(tài)類
/// </summary>
static class StaticDemo
{    
    // 聲明靜態(tài)字段
    private static string staticString = "static string";

    // 聲明靜態(tài)屬性
    public static string StaticString
    {
        get { return staticString; }
        set { staticString = value; }
    }
    
    // 實現(xiàn)靜態(tài)方法
    public static void ShowMsg()
    {
        Console.WriteLine(StaticString);
    }

    public static void Main()
    {
        // 訪問靜態(tài)方法
        // 為了演示,這里使用 類.方法 的方式訪問,實際開發(fā)中是不需要的
        StaticDemo.ShowMsg();
    }
}

接下來,我將和大家分享我總結(jié)的關于使用靜態(tài)類的15個經(jīng)驗,希望能為你的項目帶來靈感和幫助!

使用經(jīng)驗總結(jié)

1. 保持純粹

如果一個類只包含靜態(tài)成員和靜態(tài)方法,建議最好將它標記為 static,并聲明一個私有構(gòu)造函數(shù),以防止其他程序員在類的范圍之外實例化類的實例。

2. 天然密封

編譯器會自動將靜態(tài)類標記為密封類(sealed),這意味著它不能被繼承,確保了其成員的安全性和不可變性。

3. 靜態(tài)構(gòu)造函數(shù)

靜態(tài)類可以包含靜態(tài)構(gòu)造函數(shù),用于初始化類中的靜態(tài)成員,包括靜態(tài)字段和靜態(tài)屬性,但只能執(zhí)行一次,要注意的是,靜態(tài)構(gòu)造函數(shù)不能帶參數(shù)和訪問修飾符如 public,比如:

static StaticDemo() 
{
    staticString = "靜態(tài)字符串";
}

靜態(tài)字段可以在聲明時初始化,也可以通過靜態(tài)構(gòu)造函數(shù)進行初始化,靜態(tài)構(gòu)造函數(shù)會覆蓋聲明時的初始化值。

一般來說,簡單的靜態(tài)成員在聲明時進行初始化即可,復雜的靜態(tài)成員才建議選擇在靜態(tài)構(gòu)造函數(shù)中進行初始化。

4. 簡化訪問

靜態(tài)屬性和靜態(tài)方法只能由類自身訪問,這使得直接通過類名調(diào)用靜態(tài)方法,無需實例化對象,從而讓代碼調(diào)用變得更加簡單

5. 調(diào)用快速

由于無需實例化,靜態(tài)方法的調(diào)用速度往往更快。

6. 內(nèi)存使用效率高

靜態(tài)類只有一個實例,所以相對于多個實例來說,它在內(nèi)存使用上更為高效,能夠用更少的內(nèi)存存儲相同的功能,就像一個精明的家庭主婦,總是能把每一分錢都花在刀刃上

7. 編譯期綁定

靜態(tài)方法是在編譯期綁定的,這意味著它們在運行時不需要額外的查找和解析過程,從而提高了性能

8. 常駐內(nèi)存

靜態(tài)方法和字段是常駐內(nèi)存的,這意味著它們在整個程序運行期間都會占用內(nèi)存空間。所以,用得著的時候它們就在那兒,用不著的時候……它們也在那兒。

9. 不能引用 this

普通類中的靜態(tài)方法不能引用 this 關鍵字訪問,否則會引起編譯時錯誤

10. 不能被虛擬化和覆寫

普通類中的靜態(tài)方法不能被標記為 virtualabstract 或者 override,可以被派生類訪問,但是不能被派生類覆寫,就像是一首經(jīng)典老歌,你只能欣賞,不能篡改

11. 無法實現(xiàn)接口

靜態(tài)類無法實現(xiàn)接口,因為 CLS(通用語言規(guī)范)不允許接口有靜態(tài)成員,這一點在實際開發(fā)之中可能會給語言之間的交互帶來問題

12. 全局共享

靜態(tài)類的成員在應用程序的所有實例中共享。這使得靜態(tài)類非常適合執(zhí)行全局工具函數(shù)的場景,例如:

  • 工具類:靜態(tài)類常用于實現(xiàn)工具函數(shù),如數(shù)學計算、字符串處理等
  • 線程池:靜態(tài)類可以用于管理線程池,提供全局的線程管理功能
  • 全局服務:靜態(tài)類可以用于提供全局的服務或配置,如常量、日志記錄、配置管理等

13. 線程安全

使用靜態(tài)類時要注意,必須確保它們是線程安全的,在多線程環(huán)境中,靜態(tài)變量可能會導致數(shù)據(jù)不一致。

建議在多線程中,在訪問靜態(tài)成員時,使用 lock 關鍵字來確保同一時間只有一個線程能夠訪問該成員,比如:

private static object _lock = new object();
public static void SomeMethod()
{
    lock (_lock)
    {
        // 執(zhí)行線程安全的操作
    }
}

這種方法可以有效地防止多個線程同時修改靜態(tài)成員導致的數(shù)據(jù)不一致問題。

14. 謹慎使用集合

如果靜態(tài)類中需要使用集合類(如 List<T>),建議使用 C# 提供的線程安全集合類,例如 ConcurrentBag<T> 或 ConcurrentQueue<T>。這些集合類在多線程環(huán)境下自動處理并發(fā)操作,避免數(shù)據(jù)損壞。

15. 避免過度使用

過度使用靜態(tài)類可能導致代碼耦合度過高,降低代碼的可維護性,建議按需使用靜態(tài)類

最后

靜態(tài)類在 C# 中是一個強大的特殊類,了解它的特性和最佳實踐,可以幫助我們在項目中更有效地利用它的優(yōu)勢,讓它發(fā)揮更大的作用!


該文章在 2024/12/11 9:25:43 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結(jié)合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 久久久精品日本一区二区三区 | 欧美日韩亚洲中文字幕二区 | 国产免费人妻一区二区三区 | 国产精品va无码二区 | 99精品久久久久久久婷婷 | 欧美激情一区二区三区 | 一本大道香一蕉久在线播放a | 欧美日韩国产码高清综合人成 | 亚洲va无码va在线va天堂 | 区二区三区在线 | 亚洲精品成av人片天堂无码 | 日韩黄色毛片成人免费观看 | 亚洲国产一区二区三区精品 | 国产成人91 | 亚洲天堂三区 | 高潮喷水视频一区二区三区 | 亚洲综合色区另类小说 | 亚洲欧美日韩国产色另类 | 国产高清在线精品一区app | 无码av啪啪一区二区三区 | 欧美高清乌克兰精品另类 | 亚洲中文字幕人 | 亚洲欧美精品三级 | 久久精品一区二区三区动漫 | 国产精品v欧美精品v日韩 | 午夜私人影院免费体验区 | 精品无码不卡一级毛片 | 亚洲国产精品三区二区不卡 | 国产精品毛片无码一区二区 | 亚洲av怡红院影院怡春院 | 四虎影视永久免费观看网址 | 看污网站免费入 | 国产精品无码av天天爽播放器 | 亚洲午夜精品毛片成人播放 | 国产真实乱对白精彩久久老熟妇女 | 亚洲欧美中文字幕在线一区 | 日本三级吃奶头添泬 | 免费国产黄网站在线观看视频 | 国产清纯91天堂在线观看 | 中国鲜肉gay高中xx禁18网站 | 国产午夜精品久久精品电影 |