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

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