当我尝试从类对象中检索值时,会弹出此错误.它是在get-only属性中实现readonly关键字之后显示的.到目前为止我所理解的是,实现"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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于只读的属性,以下就足够了:
public int Value { get { return _count; }}
Run Code Online (Sandbox Code Playgroud)
该readonly关键字,是使只读字段,只能在构造函数中设置.
示例:
class Age
{
readonly int year;
Age(int year)
{
this.year = year;
}
void ChangeYear()
{
//year = 1967; // Compile error if uncommented.
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,作为捷径你可以写:
public int Value { get; private set;}
Run Code Online (Sandbox Code Playgroud)
你现在拥有一个带有公共getter的属性和一个私有的setter,因此它只能在这个类的实例中设置(并通过邪恶的反射).
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |