티스토리 뷰

C#

7. 프로퍼티

루체도 2020. 2. 3. 21:14

은닉성과 편의성 둘 다 잡을 수 있는 문법이 프로퍼티이다.

class ClassName
{
  private int num1;
  public int Num1
  {
    get
    {
      return num1;
    }
    set
    {
      num1 = value;
    }
  }
}

프로퍼티 선언 문법에서 get/ set을 접근자(accessor)라고 한다.

get은 필드의 값을 가져오고 set은 필드의 값을 할당한다.

외부에서 이 프로퍼티에 접근해서 값을 할당하는 것을 막고 싶다면

단순하게 set 접근자를 지워주기만 하면 된다.

위 코드처럼 작성을 하면 코드가 엄청 길어지고 중복 코드가 엄청 많은 기분이 들게 된다

그래서 C# 3.0버전에서 자동 구현 프로퍼티라는 것을 도입을 했다.

class ClassName
{
  public int Num1
  {
    get; set;
  }
  
  public String Name
  {
    get; set;
  }
}

이렇게 작성을 해주면 컴파일러가 알아서 자동으로 선언을 해주게 된다.

 

프로퍼티 생성자

객체를 생성할 때 프로퍼티를 이용해서 초기화를 할 수가 있다.

ClassName classs = new ClassName()
{
  Num1 = 10,
  Name = "하이"
}

세미콜론을 사용하는 것이 아니라 콤마를 이용해서 다음 필드에 값을 할당한다.

 

인터페이스의 프로퍼티

인터페이스는 메소드와 프로퍼티, 인덱서를 가질 수 있다.

상속받는 클래스는 프로퍼티도 반드시 구현을 해야한다.

인터페이스의 프로퍼티는 자동구현 프로퍼티와 모습이 동일하다.

interface ITest
{
  string TestName
  {
    get; set;
  }
}

class Test : ITest
{
  private string testName;
  
  public string TestName
  {
    get
    {
      return testName;
    }
    set
    {
      testName = value;
    }
  }
}

'C#' 카테고리의 다른 글

9. 컬렉션  (0) 2020.02.05
8. 컬렉션  (0) 2020.02.03
6. 인터페이스와 추상클래스  (0) 2020.01.29
5. 구조체  (0) 2020.01.29
4. 클래스(4) - 오버라이딩  (0) 2020.01.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함