12.2.2 확장 분해 메서드와 오버로딩
이 장의 소개 부분에서도 간단히 설명했듯이 컴파일러는 확장 메서드를 포함하여 관련 패턴을 준수하는 Deconstruct 메서드를 찾는다. 확장 메서드를 이용하여 Deconstrct 메서드를 어떻게 작성하는지 보여주기 위해 DateTime에 적용 가능한 구체적인 예를 나타내 봤다.
예제 12-8 DateTime을 분해하는 확장 메서드의 사용 ▶ DateTimeDeconstruction.cs
➊
static void Deconstruct(
this DateTime dateTime,
out int year, out int month, out int day) =>
(year, month, day) =
(dateTime.Year, dateTime.Month, dateTime.Day);
static void Main()
{
DateTime now = DateTime.UtcNow;
var (year, month, day) = now; ----- 현재 날짜를 연/월/일로 분해
Console.WriteLine(
$"{year:0000}-{month:00}-{day:00}"); ----- 날짜를 가지고 있는 세 개의 변수를 출력
➊ DateTime을 분해하는 확장 메서드