首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 靜態方法特性解析與實例演示

     編輯:關於C#

核心規則

靜態方法 (static) 屬於類別本身,不屬於任何實例。靜態方法只能存取靜態成員,無法直接存取實例欄位或實例方法。

程式碼範例

class A
{
    int x;          // 實例欄位
    static int y;   // 靜態欄位

    static int F()
    {
        x = 1; // 編譯錯誤:無法存取非靜態欄位
        y = 2; // 正確:存取靜態欄位
        return y;
    }
}

深度解析

  1. 記憶體模型:每個實例擁有獨立的 x 複本,靜態方法無 this 指標,無法判斷操作哪個實例的 x。y 僅有一份,屬於類別,靜態方法可直接存取。
  2. 呼叫方式:A.F() (類別名.方法名),無需 new A()。
  3. 無法使用 this/base:因無實例上下文。
  4. 效能優勢:無實例化開銷,JIT 易內聯優化。

適用場景

  • 工具/輔助方法 (如 Math.Sin、String.IsNullOrEmpty)
  • 無狀態演算法、資料轉換
  • 單例模式的靜態工廠方法

常見錯誤與修正

// 錯誤:靜態方法嘗試存取實例欄位
static void SetX(int val) { x = val; }

// 修正 1:將欄位改為靜態
static int x;

// 修正 2:改為實例方法
void SetX(int val) { x = val; }

// 修正 3:傳入實例參數
static void SetX(A instance, int val) { instance.x = val; }

掌握「靜態屬類別、實例屬物件」原則,即可正確設計靜態與實例成員。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved