This question already has answers here:
Why can't readonly be used with properties [duplicate]
(5个答案)
去年关闭。
当我尝试从类对象中检索值时,会弹出此错误。它是在get-only属性中实现readonly关键字之后显示的。到目前为止,我了解的是实现“只读”仅将class属性限制为get方法。我不太确定该关键字的实现方式,请帮忙吗?
这是当前代码。
Example:
顺便说一句,您可以这样写:
现在,您拥有一个带有公共获取器和私有设置器的属性,因此只能在此类的实例中设置(并通过邪恶的反射)。
(5个答案)
去年关闭。
当我尝试从类对象中检索值时,会弹出此错误。它是在get-only属性中实现readonly关键字之后显示的。到目前为止,我了解的是实现“只读”仅将class属性限制为get方法。我不太确定该关键字的实现方式,请帮忙吗?
这是当前代码。
class Counter
{
private int _count;
private string _name;
public Counter(string name)
{
_name = name;
_count = 0;
}
public void Increment()
{
_count++;
}
public void Reset()
{
_count = 0;
}
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
public readonly int Value
{
get
{
return _count;
}
}
}
最佳答案
对于只读属性,以下内容已足够:
public int Value { get { return _count; }}
readonly
关键字用于设置只读字段,该字段只能在构造函数中设置。Example:
class Age
{
readonly int year;
Age(int year)
{
this.year = year;
}
void ChangeYear()
{
//year = 1967; // Compile error if uncommented.
}
}
顺便说一句,您可以这样写:
public int Value { get; private set;}
现在,您拥有一个带有公共获取器和私有设置器的属性,因此只能在此类的实例中设置(并通过邪恶的反射)。
关于c# - 只读修饰符对此项目无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52163908/
10-13 05:57