더북(TheBook)

12.2.1 인스턴스 분해 메서드

앞에서 여러 번 등장했던 Point 클래스를 이용한 인스턴스 분해에 대한 간단한 예를 살펴보자. 분해를 위한 Deconstruct 메서드는 다음과 같이 작성할 수 있다.

public void Deconstruct(out double x, out double y)
{
    x = X;
    y = Y;
}

이제 Point 객체를 두 개의 double 변수로 분해하려면 다음과 같이 코드를 작성한다.

예제 12-7 Point를 두 개의 변수로 분해 ▶ Point.cs

var point = new Point(1.5, 20);  ----- Point 타입의 인스턴스를 생성
var (x, y) = point;  ----- 두 개의 double 타입 변수로 분해
Console.WriteLine($"x = {x}");
Console.WriteLine($"y = {y}");

 


➊ 변숫값을 각기 출력

Deconstruct 메서드는 out 매개변수를 이용하여 분해의 결과를 전달한다. 앞의 경우 두 개의 double 값으로 분해를 수행했다. 이는 이름이 의미하듯 생성자(constructor)와 완전히 반대로 동작한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.