장점
1. 메소드를 직접적으로 호출하는 것이 아니라 필드를 읽고 쓰는 좀 더 단순 형태를 띠므로 참조문이 간단해진다
ex) 시간을 1 증가 시킬떄
Get/Set 메소드 - Now.SetHour(Now.GetHour() + 1);
프로퍼티 - Now.Hour = Now.Hour + 1;

2. 코드를 가지는 메소드이므로 능동적으로 동작할 수 있다
ex)
private int price;
private double sale;
public double SalePrice
{
    get { return price * sale;}
}
여러 개의 필드로부터 복잡한 값을 조합해 내는 수식이 자주 사용된다면 해당 수식을 계산하는 프로퍼티가 편하다

3. 프로퍼티 벼경에 의한 부효과도 처리할 수 있다
값을 바꾸면서 다른 코드도 실행할 수 있으므로 값이 바뀔때 같이 해야 하는 작업을 처리할수 있다
ex) 날짜를 바꾸면 요일도 같이 바뀐다거나, 객체를 숨기면 상태를 바꿈과 동시에 화면도 바뀐다거나

4. 읽기전용이나 쓰기전용의 프로퍼티를 만들 수도 있다
get 접근자 - 읽기전용
set 접근자 - 쓰기전용
ex) Length, MinValue, MaxValue 읽기전용

5. 액세스할 때 이름을 사용하고 타입이 분명히 정해져 있으므로 비주얼 편집이 가능하다
개발 툴이 작성하며 값 변경에 따른 부 효과는 프로퍼티에 작성된 코드가 처리

6. Get/Set 메소드보다 훨씬 더 빠르게 작동한다

Posted by 코딩하는 야구쟁이
,