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

C# 欄位宣告語法與修飾詞完整指南

     編輯:關於C#

欄位宣告標準語法

[attributes] [field-modifiers] 型別 變數宣告列表;

欄位修飾詞詳細說明

修飾詞說明備註
new遮蔽基類別同名欄位消除編譯器警告 CS0108
public公開存取不建議直接公開欄位,改用屬性
protected衍生類別可存取基類別實作細節暴露給衍生類別
internal同一組件內可存取組件內部實作共享
private僅類別內部可存取預設值,封裝最佳實務
static屬於類別,共享單一儲存不可與 readonly 衝突 (可共存)
readonly只能在宣告/建構子賦值不可變資料、版本控制友善
volatile指示編譯器/JIT 不優化存取順序多執行緒共享欄位,配合 memory barrier
const編譯期常數隱含 static,需宣告時初始化

多變數宣告與初始化


public int X, Y, Z;                    // 同型別多欄位
public int Width = 100, Height = 200;  // 同型別多欄位帶初始化
// 不同型別需分開宣告
public string Name;
public int Age;

欄位 vs 區域變數關鍵差異

特性欄位區域變數
宣告位置類別/結構體區塊內方法/建構子/屬性/索引子/區塊內
預設值自動指派型別預設值無預設值,使用前必須指派
生命週期實例/類別存活期間方法/區塊執行期間
修飾詞支援存取修飾詞、static、readonly 等無修飾詞 (C# 7.0+ 可用 ref/out/in)
可作為 ref/out 參數是是

常見模式與反模式

✅ 推薦模式

  • private readonly 欄位 + 公開屬性暴露 (封裝)。
  • static readonly 單例實例或共享不可變資料。
  • volatile 修飾多執行緒共享的布林旗標/計數器 (簡單情況)。

❌ 反模式

  • public 欄位直接暴露 → 破壞封裝、無法加驗證、序列化/繫結問題。
  • 大量 static 可變欄位 → 全域狀態難以測試、執行緒安全風險。
  • 在結構體中使用非 readonly 可變欄位 → 防禦性複製效能損失。

編譯器自動生成的預設建構子行為

若類別未定義任何建構子,編譯器會產生無參數建構子,僅執行欄位預設值初始化 (實際上 CLI 規範保證記憶體歸零,C# 編譯器不額外產生 IL 指令)。

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