C#/클래스와 구조체

[C#] 프로퍼티 (Property)

도도돋치 2025. 4. 17. 17:17
Contents 접기
728x90

 

1. 프로퍼티(Property)란?

프로퍼티(Property) 는 필드(field)에 간접적으로 접근할 수 있도록 도와주는 일종의 메서드처럼 동작하는 멤버이다.
값을 읽고(get)설정(set) 하는 역할을 하며, 캡슐화(encapsulation) 를 구현할 때 자주 사용

 

 

2. 왜 프로퍼티를 사용할까?

 

  • 외부에서 필드에 직접 접근하지 못하게 막고, 통제된 방식으로 값을 설정하거나 읽게 하기 위해
  • 유효성 검사, 로직 처리 등을 중간에 추가할 수 있기 때문

 

3. 기본 구조

class Person {
    private string name;  // 필드

    public string Name    // 프로퍼티
    {
        get { return name; }
        set { name = value; }
    }
}
// 사용
Person p = new Person();
p.Name = "도치";             // set 호출
Console.WriteLine(p.Name);  // get 호출

 

 

4. 자동 구현 프로퍼티 (Auto-Implemented Property)

필드를 따로 만들 필요 없이, 프로퍼티만으로 간단히 구현 가능

public class Product {
    public string Name { get; set; }
    public int Price { get; set; }
}

 

 

5. 읽기 전용/쓰기 전용 프로퍼티

public class User {
    public string Nickname { get; private set; } // 외부에서 읽기만 가능

    public User(string nickname) {
        Nickname = nickname;
    }
}
public class Example {
    private int _secret;
    public int Secret {
        private get { return _secret; }
        set { _secret = value; }  // 외부에서 설정만 가능
    }
}

 

 

📖 정리

✓ 프로퍼티는 필드 값을 안전하게 읽고/설정할 수 있도록 도와주는 기능
 get/set 접근자를 통해 캡슐화를 강화
 자동 구현 프로퍼티를 사용하면 간단한 코드로 클래스 구성 가능
접근 제한자 조합을 통해 읽기 전용/쓰기 전용 구현 가능

 

728x90

'C# > 클래스와 구조체' 카테고리의 다른 글

[C#] 다형성(Polymorphism)  (0) 2025.04.17
[C#] 상속(Inheritance)  (0) 2025.04.17
[C#] 객체  (0) 2025.04.17
[C#] 클래스 구조체 차이  (0) 2025.04.17
[C#] 클래스  (0) 2025.04.17