C# 私有設定器

Harshit Jindal 2023年10月12日
  1. C# 中使用 getters 作為獲取訪問器
  2. C# 中使用 setters 作為 Set 訪問器
C# 私有設定器

C# 中的屬性是欄位和方法的組合。它們不是變數,因此不能作為函式中的 outref 引數傳遞。

它們有助於控制對資料的訪問,在編輯之前執行資料驗證並促進更簡潔的程式碼,因為它避免了在 getterssetters 的幫助下宣告顯式私有變數。

在深入探討 private setter 的用法之前,讓我們先討論 getterssetters 的概念,然後慢慢過渡到 access modifiers 的角色。

C# 中使用 getters 作為獲取訪問器

getters 的程式碼在讀取值時執行。由於它是對欄位的讀取操作,因此 getter 必須始終返回結果。

public getter 意味著每個人都可以讀取該屬性。而 private getter 意味著該屬性只能由類讀取,因此是一個只寫屬性。

我們必須根據我們的要求在 getter 之間進行選擇。

C# 中使用 setters 作為 Set 訪問器

setters 的程式碼在寫入值時執行。

這是一個寫操作,因此是一個 void 方法。它將欄位的值作為引數。

該值可以以其當前形式分配給屬性,或者我們可以在分配之前執行一些計算。

public setter 意味著該值可以被類外的任何物件編輯。另一方面,private setter 意味著該屬性是隻讀的,不能被其他人修改。

現在我們知道了 gettersetter 之間的區別以及 accessor modifiers 的影響,我們可以具體看一下 private setter

public int Prop { get; private set; }

// The below code is the same as above, see the cleanliness use of auto property brings.
private int prop;
public int Prop {
  get { return prop; }
}

從上面的程式碼中我們可以看出,使用 private setter 不僅是一種好的編碼習慣,而且使我們的程式碼具有內在的封裝性。

封裝 意味著我們類中的物件堅持一個介面並始終保持其狀態。在這裡,拒絕從外部編輯該屬性會使類更加穩健和高效。

作者: Harshit Jindal
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn