• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

public string Name {get; set;} 에서

20.03.20 15:08 작성 조회수 530

0

초보라서 잘 이해가 안되는데요.

게터 세터 쓰는 이유가 변수에 바로 접근하는걸 막기 위해서 라고 하셨는데

public ~~~{get; set;}

이렇게 쓰면 그동안 변수를 private로 감추고 게터 세터로 접근하는 의미가 없이 바로 변경 가능할 수 있게 되는거 아닌가요?

다른 질문 답변을 봐도 말이 너무 어려워서 잘 이해가 가지 않네요..^^ 여전히 변수에 대한 직접 접근을 막으려면 게터 세터를 따로 써야되고 영상 말미의 축약형은 목적에 따라 직접 접근을 막을 필요가 없을 때 편의상 쓰는건가요?

답변 1

답변을 작성해보세요.

0

답변이 너무 늦었습니다. 게터,세터는 단순히 변수라는 의미로 볼 수는 없어요. 즉, 정확하게 메쏘드입니다. 메쏘드를 통해서 외부와 값을 주고 받는 기능이라고 이해하시면 됩니다. 다만, 실전에서는 이것을 통해서 내용을 검증하는 경우는 극히 드뭅니다. 대부분 로직을 구현할 때 검증 작업을 하던지, 아니면 아예 그런 검증이 필요없는 목적으로도 많이 사용됩니다. 예를 들어서 데이터베이스 테이블을 Dapper를 사용해서 가져올 때 모델 클래스를 만들어서 사용하는데 이런 때에 게터,세터를 사용하게 됩니다.

일단은 외부와 클래스가 통신하는 방법으로 함수를 통한 파라메터 전달과 프로퍼티(게터,세터)를 통한 전달을 활용하시고, 가급적 public  변수를 사용하는 것을 지양하시는 것으로 정리하고 넘어가시면 됩니다. 사실 프로퍼티가 깊이 들어가면 복잡한 것이 있지만 꼭 이해하고 넘어갈 필요가 없다고 생각해요.