이미 Deconstruct 인스턴스 메서드를 가지고 있는 타입에 대해서도 확장 메서드 형태의 Deconstruct 메서드를 추가하여 구현할 수도 있다. 분해 작업을 수행할 때 적절한 인스턴스 메서드 형태의 Deconstruct가 없다면 일반 메서드를 호출하듯이 확장 메서드로 구현한 Deconstruct 메서드를 호출한다.
확장 메서드로 구현한 Deconstruct는 인스턴스 메서드와 다르기 때문에 자연스럽게 다음과 같은 제약이 생긴다.
• 호출 측 코드에 접근 가능해야 한다.
• 첫 번째 매개변수(확장 메서드의 대상)를 제외한 다른 모든 매개변수는 out 매개변수여야 한다.
• 적어도 두 개 이상의 out 매개변수를 가져야 한다.
• 제네릭 메서드가 될 수 있지만, 첫 번째 매개변수인 호출 수신자(receiver of the call)에 대해서만 타입 추론이 수행된다.
메서드를 제네릭으로 선언할 수 있는지 나타내는 규칙은 특히나 자세히 살펴볼 필요가 있는데, Deconstruct에 대한 오버로드를 작성할 때 매개변수의 개수를 달리해야 하는 이유와 연관되어 있기 때문이다. 어찌 되었건 가장 중요한 핵심은 컴파일러가 Deconstruct 메서드를 어떻게 다루는지와 관련되어 있다는 점이다.