이 질문에는 이미 답변이 있습니다.
이 오류는 클래스 객체에서 값을 검색하려고 할 때 나타납니다. get-only 속성에 readonly 키워드를 구현 한 후 표시됩니다. 지금까지 이해할 수있는 것은 "읽기 전용"을 구현하면 클래스 속성이 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
키워드는 생성자에서만 설정할 수있는 읽기 전용 필드를 만드는 것입니다.
예:
class Age
{
readonly int year;
Age(int year)
{
this.year = year;
}
void ChangeYear()
{
//year = 1967; // Compile error if uncommented.
}
}
Btw, 당신이 쓸 수있는 짧은 컷 :
public int Value { get; private set;}
이제 public getter가있는 속성과 private setter가 있으므로이 클래스의 인스턴스 내에서만 (그리고 악의 반영을 통해) 설정할 수 있습니다.
readonly
-들. - HimBromBeere
readonly
여기에 필요하거나 허용되지 않습니다. getter 만 제공 했으므로 속성이 읽기 전용임을 나타낼 수 있습니다. - Jeroen Mostertreadonly
한정자는 필드에만 적용됩니다. - CodeCaster