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)와 완전히 반대로 동작한다.