식 본문 멤버(Expression Bodied Members)

식 본문 정의를 사용할때 간결하게 멤버를 구현할 수 있다.
C# 버전별로 지원되는 멤버가 나누어져 있습니다.

C# 6

- 메서드
- 속성 get

C# 7.0

- 생성자
- 소멸자
- 속성 set
- 인덱서

하나하나 예제를 보면서 설명해보자.

메서드

모든 class는 object class를 상속한다.

그러므로 object class의 멤버인 ToString을 재정의해서 사용할 수 있다.

ToString 메서드(return string)와 DisplayName(return void)이라는 메서드를 간결하게 사용한 예제이다.


public class Person
{
   public Person(string firstName, string lastName)
   {
      fname = firstName;
      lname = lastName;
   }
 
   private string fname;
   private string lname;
   
   public override string ToString() => $"{fname} {lname}".Trim();
   public void DisplayName() => Console.WriteLine(ToString());
}
cs


중간 광고


속성 get / set

속성 get 접근자를 구현하기 위해서는 단순히 속성값을 반환하는 단일 식에 대해서만 정의가 가능하다.(return 문 사용x)
속성 set 접근자도 필드에 값을 할당하는 한 줄 식에 대해서만 가능하다.

public class LocalItem {
    // 필드
    private int _Index;
    private string _Title;
 
    // 속성 get
    private int Index => _Index;
 
    // 속성 get/set
    private string Title {
        get => _Title;
        set => _Title = value;
    }
 
    // 생성자
    public LocalItem(int index) => _Index = index;
}
cs


인덱서

인덱서도 속성과 동일한 방법으로 구현하면 된다.

public class LocalItem {
    private string[] _Type = { "Seoul""Incheon""Gangwon""Busan""Ulsan""Daegu""Daejeon" };
 
    public string this[int i] {
        get => _Type[i];
        set => _Type[i] = value;
    }
}
cs

+ Recent posts