在C#中,可以通過將屬性的get
訪問器設為public
且readonly
,或者為索引器設置readonly
屬性來實現只讀。
public class MyClass
{
private int _myProperty;
public MyClass(int myProperty)
{
_myProperty = myProperty;
}
// 只讀的 get 訪問器
public int MyProperty
{
get { return _myProperty; }
}
}
在這個例子中,MyProperty
屬性被設置為只讀,因為它具有一個public
的get
訪問器,但沒有set
訪問器。這意味著您可以在類的外部訪問MyProperty
,但不能修改它的值。
public class MyClass
{
private int[] _myArray = new int[] { 1, 2, 3 };
// 只讀的 get 訪問器
public int this[int index]
{
get
{
if (index >= 0 && index < _myArray.Length)
{
return _myArray[index];
}
else
{
throw new ArgumentOutOfRangeException(nameof(index));
}
}
}
}
在這個例子中,我們為索引器定義了一個readonly
屬性。這意味著您可以在類的外部訪問索引器,但不能修改它的值。請注意,在這種情況下,索引器仍然具有get
訪問器,但沒有set
訪問器。