foo.setSize(foo.getSize() + 1);
label.getFont().setBold(true);
foo.Size++;
label.Font.Bold = true;
編譯器自動轉換為 get_Size()/set_Size() 呼叫,程式碼可讀性大幅提升。
// Java/C++
public int getSize() { return size; }
public void setSize(int value) { size = value; }
// C#
public int Size {
get { return size; }
set { size = value; }
}
private int size; — 儲存資料的變數public int Size { get; set; } — 存取器封裝C# 強制 get/set 成對出現 (或明確 private set),Java/C++ 允許單獨 get 或 set。C# 設計意圖:修改時同步檢視存取邏輯,避免「改了 get 忘了 set」的維護缺陷。
屬性語法源自 VB/Delphi,C# 引入並強化為第一級語言特性。