C#變數get set意思

在C#中,getset 是與屬性(Property)相關的存取器(Accessor)。屬性提供了一種以類似於類中欄位的更為結構化的方式來存取類的數據。

getset 的使用方式如下:

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 存取器:

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 值的方法。

總結來說,getset 存取器提供了對屬性讀寫行為的細粒度控制,這使得你可以更好地管理對類中數據的訪問。