최근 편집 내용을 기준으로 한 IntelliCode 제안

제가 자주 쓰는 기능인데요. :smile:

프레임워크 구조를 더 개선하는 과정에서 변경된 구조에 따른 기존 소스코드 변경 작업을 이 기능을 통해 좀 더 간단하게 작업할 수 있습니다.

물론 좀 더 복잡한 상황에서는 제대로 변경되지 않거나 오히려 사용하지 않는 것이 좋은 상황도 있습니다.
하지만 이런 경우에는 아주 편리하게 응용할 수 있습니다.

실제로 제가 작업하면서 나왔던 사례를 한번 살펴볼까요?

메서드 변경 전과 변경 후

참고로 변경전 메서드를 폐기하지 않고 아래에 새로 대체할 메서드를 생성했습니다.

// 변경전
public Geometry ToGeometry()
{
    return System.Windows.Media.Geometry.Parse(GetGeometryString());
}

// 변경후
public static Geometry ToGeometry<T>() where T : GeometryCanvas, new()
{
    return System.Windows.Media.Geometry.Parse(new T().GetGeometryString());
}

로직이 바뀌면서 생기는 변경 점

간단하지만 수십 수백 줄의 변경 점이 생긴다면?

// 기존
Icon.Home => new Home().ToGeometry(),
// 변경
Icon.Home => ToGeometry<Home>(),

한두 개 바꾸다 보면 Visual Studio가 캐치를 합니다.

최근 편집 내용을 기준으로 한 IntelliCode 제안

이런 상황에서 쓰면 좋습니다.

  • 결과를 한눈에 파악할 수 있는 경우
  • 변경되는 부분이 복잡하지 않은 경우

그리고 제안 적용은 하나씩 먼저 해보고 문제가 없어 보일 경우 모든 제안을 적용하는 것이 안전합니다.

image

7개의 좋아요