在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
访问器。