C#變數get set意思
在C#中,get
和 set
是與屬性(Property)相關的存取器(Accessor)。屬性提供了一種以類似於類中欄位的更為結構化的方式來存取類的數據。
get
和 set
的使用方式如下:
public class Person
{
private string _name;
public string Name
{
get { return _name; }
set
{
if (value == null)
{
throw new ArgumentNullException("Name cannot be null");
}
_name = value;
}
}
}
在上面的例子中,Name
屬性提供了對 _name
欄位的存取。
get
存取器用於讀取屬性的值。當你寫person.Name
時,C# 編譯器實際上會轉換為person.Name.get()
。set
存取器用於設置屬性的值。當你寫person.Name = "John Doe"
時,C# 編譯器實際上會轉換為person.Name.set("John Doe")
。
這樣做的好處是,你可以控制屬性的讀寫行為,例如執行驗證、格式化數據、記錄訪問等。
如果你只想要一個只讀屬性,你可以只定義 get
存取器:
public class Person
{
private string _name;
public string Name
{
get { return _name; }
}
}
在這種情況下,Name
屬性只能被讀取,不能被設置。
如果你想要一個只寫的屬性,你可以只定義 set
存取器:
public class Person
{
private string _name;
public void SetName(string name)
{
_name = name;
}
}
在這種情況下,SetName
方法可以用來設置 _name
欄位的值,但是沒有提供直接讀取 _name
值的方法。
總結來說,get
和 set
存取器提供了對屬性讀寫行為的細粒度控制,這使得你可以更好地管理對類中數據的訪問。