-
2024.03.05 - 프로퍼티(Property)C# 2024. 3. 5. 18:07
정보은닉원칙에 의거해서, 특별한 이유를 제외하고는 필드(클래스 또는 구조체에서 선언되는 모든 형식의 변수)를 절대로 public으로 선언하지 않는다. 그러면 이 필드에 어떻게 접근해야 하는지 문제가 생긴다.
일단 public Get함수와 Set 메서드를 만들어서 클래스 내부의 변수에 접근하는 방법이 있다.
class Unit { private int _value; public int Get_value() { return _value; } public void Set_value(int value) { _value = value; } }
그런데 필드가 엄청 많아지면? 각각의 필드마다 일일히 Get, Set 메서드를 만들어주기는 힘들다.
C#에서는 프로퍼티(Property: 속성)를 사용해서 이런 과정을 단축시킬 수 있다.
- 프로퍼티 사용 예제
프로퍼티를 만들려면 필드(int _value)와 동일한 구문(int _Value)을 가져야한다. 보통 맨 앞 알파벳을 대문자로 하여 프로퍼티임을 나타낸다. 프로퍼티 안의 get 접근자 안의 내용은 프로퍼티를 읽으려고 할 때, set 접근자 안의 내용은 프로퍼티를 쓰려고 할 때 실행된다. (쉽게 말해서 프로퍼티를 사용하면 알아서 값을 읽을 때, 쓸 때 구분해서 동작함.)
- 자동 구현 프로퍼티
이것 마저 귀찮다? 더 간단한 방법이 있다. 자동 구현 프로퍼티는 훨씬 간단한 문법으로 프로퍼티를 만들 수 있다.
문제가 있다면, 자동 구현 프로퍼티로는 private이나, protected로 제한된 변수에 접근할 수 없다.
그냥 프로퍼티를 쓰는게 좋을 것 같다.
'C#' 카테고리의 다른 글
2024.03.06 - 오버라이딩(Overriding), 가상 함수(virtual) (0) 2024.03.06 2024.03.05 - 상속(inheritance), 접근 제한자 (0) 2024.03.06 2024.03.05 - static 변수 (0) 2024.03.05 2024.03.05 - 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) (0) 2024.03.05 2024.03.04 - 키 입력 받기 (0) 2024.03.05