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

C# readonly 與 const 比較(二):可維護性、效能與適用場景

     編輯:關於C語言

可維護性:跨組件部署陷阱


// Assembly A
public class Consts { public static readonly int A = 2; public const int B = 3; }

// Assembly B (參考 A)
public class Consumer { public static int C = Consts.A + Consts.B; } // 編譯時 C = 2 + 3 = 5

若修改 Assembly A:A=4, B=5,不重新編譯 B 直接部署新 A.dll:

  • readonly A:B 讀取執行時值 → C = 4 + 3 = 7(const B 已內嵌為 3)。
  • 重新編譯 B 後:C = 4 + 5 = 9。

結論:const 為編譯期常數,值內嵌於呼叫端 IL;跨組件修改需同步重編譯。readonly 為執行期常數,透過欄位存取,自動取得最新值。

效能

const 直接內嵌常數值,略快於 readonly 的欄位存取,但差異極微(納秒級),一般應用可忽略。

適用場景建議

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
情境建議
真正不變的常數(π、一天小時數、光速)const
極度效能敏感的熱路徑const(微優化)
其他所有情況(設定值、版本號、資源路徑等)readonly