2023. 5. 3. 00:35ㆍ도와줘/컴퓨터
C# property를 사용함으로써 얻을 수 있는 이점은 무엇인가?
이점이라고 하면 비교의 대상이 있어야 하는데,
멤버 변수를 public으로 선언했을 때에 비해서 얻을 수 있는 이점과
getter, setter 메서드를 작성할 때에 비해서 얻을 수 있는 이점으로 구분되어야겠다.
물론 대부분의 블로그에서 그냥 구분없이 막 싸질러놨다.
구분하자면 다음과 같을 것이다.
멤버 변수를 public으로 선언했을 때에 비해서,
property를 사용함으로써 얻을 수 있는 이점
이건 getter, setter 메서드를 작성해도 충분히 얻을 수 있는 이점이다.
1. 정보 은닉 가능(메서드를 통해 숨길 수 있다)
2. set 시 값의 유효성 검증 가능
3. 데이터 무결성 보장 가능
4. setter가 무결성을 해칠 수 있고 빌더 패턴을 이용해야한다 이런 소리가 있는데 이건 여기서 말할 주제가 아니다. 그건 setter를 잘못 사용할 때의 이야기고, 걍 필드를 public으로 열어둘 때에 비해서 setter를 쓰는 방법의 장점에 대해 이야기하고 있는 거임 지금은..
5. get만 열고 set은 막는다든가 하는 게 가능함
getter, setter 메서드를 작성할 때에 비해서,
property를 사용함으로써 얻을 수 있는 이점
1. 값을 set할 때, setter 메서드를 사용하는 게 아니라 = 연산자를 사용할 수 있다!!!
2. C#은 자동 구현 프로퍼티가 있다( get; set; 만으로 가능)

많이들 질문이 나오는 부분인데
"2. C#은 자동 구현 프로퍼티가 있다( get; set; 만으로 가능)" 이게 무슨 장점이냐?
이럴 거면 그냥 변수 접근제한자를 public으로 선언해라...라고 한다.
둘 다 열거면 간단하겐 맞는 말인데 사실 하나를 막을 수 있어서 쓸 수 있다.
이 외에도...
Properties vs. Public Variables (codinghorror.com)
Properties vs. Public Variables
I occasionally see code with properties like this: private int name; public int Name { get { return name; } set { name = value; } } As I see it, there are three things to consider here. 1. When is a property not a property? When it's a glorified public var
blog.codinghorror.com
아주 유익한 글이니 참고하면 좋다...
'도와줘 > 컴퓨터' 카테고리의 다른 글
| 윈도우11에서 윈도우10 다운그레이드, "돌아가기" 버튼이 비활성화 되었다면? (0) | 2023.05.03 |
|---|---|
| Git 연습 사이트에서 명령어 연습하고 그래픽으로 볼 수 있당 (0) | 2023.05.03 |
| 설문조사 만들기 사이트, 구글 폼 외에는 뭐 있지? (0) | 2023.05.02 |
| 윈도우 캡처 단축키! 아니... 프린트스크린샷 키 말고요;;; (0) | 2023.05.01 |
| Knox Meeting 녹스 미팅 설치 및 접속하기 (2) | 2023.05.01 |