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

C# 建立不可變、原子性的值型別(二):問題分析與概念定義

     編輯:關於C語言

分析 class 改為 struct 的理由:資料導向、無行為、小型資料傳值效能較好。接著揭示兩大問題:

  1. 資料不一致:屬性賦值中途拋出例外,導致部分欄位已修改、部分未修改(如 Zip 驗證失敗,City 已改、Province 未改)。多執行緒下同樣可讀取到中間狀態。
  2. 可變性:物件建立後仍可任意修改單一欄位,違背領域模型完整性。

核心定義

  • 原子性:物件狀態為整體,要麼全改、要麼全不改。
  • 常量性(不可變性):物件建立後狀態凍結,需變更時建立新實例。

下篇將展示以 readonly、建構函數、移除 setter 解決上述問題。

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