42.4 함수형 프로그래밍 스타일: 메서드 체이닝
메서드의 반환값을 자신의 클래스 형식으로 지정하면 메서드를 계속 반복해서 호출하는 함수형 프로그래밍 스타일을 제공할 수 있습니다. 자세한 함수형 프로그래밍 내용은 61강에서 다룹니다. 다음 내용을 입력한 후 실행해 보세요.
> class Point . { . public readonly int x; //readonly 필드 . public readonly int y; . public Point(int x, int y) . { . this.x = x; //readonly 필드는 반드시 생성자로 초기화 필요 . this.y = y; . } . . //① 생성자의 반환값을 자신(Point)으로 지정 . public Point MoveBy(int dx, int dy) . { . return new Point(x + dx, y + dy); . } . } > > //ⓐ 함수형 프로그래밍 스타일: 메서드 체이닝 > var p = (new Point(0, 0)).MoveBy(10, 10).MoveBy(20, 20).MoveBy(30, 30); > $"X : {p.x}, Y : {p.y}" "X : 60, Y : 60"
이미 우리는 LINQ에서 메서드 체이닝 개념을 학습했습니다. 이러한 메서드 체이닝을 구현하려면 반환값으로 자신의 개체를 반환합니다. 메서드 체이닝은 사용할 때는 편리하지만, 구현할 때는 코드가 복잡합니다. 나중에 확장 메서드를 만드는 방법을 배울 것인데, 이 확장 메서드를 사용하면 예제에서 만드는 방법보다 훨씬 간단하게 메서드 체이닝을 구현할 수 있습니다.