2012-07-03 6 views
1

정확하게 이해했는지 확인하고 싶었습니다. get의 반환 값은 반환 값을 개인 인스턴스 데이터와 동일하게 만듭니다. 그리고 set 값은 public 값의 값을 private 인스턴스의 값과 동일하게 만듭니다. 나는 이것을 정확하게 이해합니까?C를 설정하고 가져 오기

private int _value; 
    public int Value 
    { 
     get { return _value; } 
     set { _value = value; } 
    } 

이 그런 예, 개인 필드 _value의 값을 반환 얻고 _value을 설정하는 것입니다 설정하지만, 그것은뿐만 아니라 다를 수 :

+0

나는 이것이 ACTUAL 행이라고 생각합니다. ** set 값은 private 인스턴스의 값을 공개 값의 값과 동일하게 만듭니다. ** 예를 들면 다음과 같습니다. set {this.var1 = value;} –

+0

속성에 대해 구체적으로 말한 것 같습니다. 도와 주신 모든 분들께 감사드립니다. – user1192890

답변

4

당신이 경우 속성으로 정의된다. 위의 예에서

public int Value 
     { 
      get { return getCalculatedValue() } 
      set { 
       if (_value > 0) 
       { 
        _value = value; 
       } 
       else 
       { 
        _value = -1; 
       } 
      } 
     } 

, 일부 기능 getCalculatedValue() 이름과 적절하게 설정 한 후 어떤 조건에 대한 값의 유효성을 검사하고 설정에서 당신에게 calculatedValue을 반환받을.

5

항상 그렇지는 않습니다.

Get은 개발자가 속성 값이 있어야한다고 생각하는 것을 반환하고 set은 개발자가 데이터를 저장하기에 적합한 것으로 생각하는 모든 것을 반환합니다. 종종 속성과 내부 필드 사이에 일대일 매핑이 있지만 항상 그런 것은 아닙니다.

int UltimateAnswer {get {return 42;}} // no internal field at all 
int Direct 
{ 
    get {return _direct;} 
    set {_direct = value;} 
} 
int WithConversion 
{ 
    get {return _stored * 100;} 
    set { _stored = value/100;} 
} 
int AutoFiled {get;set;} // this one directly maps to automatically created field. 
관련 문제