在C#中,set
和get
是屬性(Property)的兩種訪問修飾符,它們用于控制對類成員的讀寫訪問。set
用于定義屬性的“setter”方法,用于設置屬性的值;get
用于定義屬性的“getter”方法,用于獲取屬性的值。
set
和get
的兼容性說明如下:
get
訪問修飾符的屬性只能讀取屬性值,不能設置屬性值。如果嘗試使用set
訪問修飾符,編譯器會報錯。public class MyClass
{
public int MyProperty { get; } // 只讀屬性
}
set
訪問修飾符的屬性只能設置屬性值,不能讀取屬性值。如果嘗試使用get
訪問修飾符,編譯器會報錯。public class MyClass
{
public int MyProperty { set; } // 只寫屬性
}
get
和set
訪問修飾符的屬性可以讀取和設置屬性值。public class MyClass
{
public int MyProperty { get; set; } // 讀寫屬性
}
auto-implemented
關鍵字簡化讀寫屬性的定義。編譯器會自動生成get
和set
方法。public class MyClass
{
public int MyProperty { get; set; } // 自動實現的讀寫屬性
}
get
和set
方法。public class MyClass
{
private int _myProperty;
public int MyProperty
{
get { return _myProperty; }
set { _myProperty = value; }
}
}
總之,set
和get
在C#中用于定義屬性的讀寫訪問。只讀屬性只能讀取值,只寫屬性只能設置值,而讀寫屬性可以同時進行讀寫操作。可以使用auto-implemented
關鍵字簡化讀寫屬性的定義,也可以為讀寫屬性提供自定義的get
和set
方法。