다음을 통해 공유


리팩터링 경고 대화 상자

업데이트: 2007년 11월

이 경고 대화 상자는 컴파일러가 프로그램을 완전히 이해하지 못하여 리팩터링 엔진이 모든 해당 참조를 업데이트하지 않을 수도 있음을 나타냅니다. 또한 이 경고 대화 상자는 변경 내용을 커밋하기 전에 변경 내용 미리 보기 대화 상자에서 코드를 미리 볼 수 있는 기회를 제공합니다.

참고:

IDE에서 빨간색 물결선으로 표시한 구문 오류가 메서드에 있는 경우 리팩터링 엔진은 해당 메서드 내의 요소에 대한 모든 참조를 업데이트하지 않습니다. 다음 예제는 이 동작을 보여 줍니다.

기본적으로 참조 변경 내용을 미리 보지 않고 리팩터링 작업을 실행했는데 프로그램에서 컴파일 오류가 발견되면 개발 환경은 이 경고 대화 상자를 표시합니다.

참조 변경 내용 미리 보기가 활성화된 상태에서 리팩터링 작업을 실행했는데 프로그램에서 컴파일 오류가 발견되는 경우 개발 환경은 리팩터링 경고 대화 상자를 표시하는 대신 변경 내용 미리 보기 대화 상자의 아래쪽에 다음 경고 메시지를 표시합니다.

프로젝트 또는 종속 프로젝트 중 하나가 현재 빌드되지 않았습니다. 참조가 업데이트되지 않을 수 있습니다.

이 리팩터링 경고는 다음의 리팩터링 대화 상자에서 사용할 수 있는 참조 변경 내용 미리 보기 옵션을 제공하는 리팩터링 작업에만 사용될 수 있습니다.

  • 항상 이 대화 상자 표시
    이 옵션은 기본적으로 선택되어 있습니다. 이 옵션이 선택되면 리팩터링 작업 중에 컴파일 오류가 발견될 때 리팩터링 경고 대화 상자가 계속 나타납니다.

    이 확인란의 선택을 취소하면 추가 리팩터링 작업에 대해 이 경고 대화 상자가 사용되지 않습니다. 이 확인란의 선택을 취소한 다음 추가 리팩터링 작업에 대해 이 경고 대화 상자를 다시 활성화하려면 옵션 대화 상자, 텍스트 편집기, C#, 고급에서 리팩터링을 하는 동안 빌드 오류가 발생하면 경고 옵션을 선택합니다.

  • 계속
    참조 변경 내용을 미리 보지 않고 현재 리팩터링 작업을 계속합니다.

  • 미리 보기
    코드를 미리 볼 수 있도록 변경 내용 미리 보기 대화 상자를 엽니다.

  • 취소
    현재 리팩터링 작업을 취소합니다. 코드가 변경되지 않습니다.

예제

다음 코드 예제에서는 리팩터링 엔진이 참조를 업데이트하지 않는 위치를 보여 줍니다. 리팩터링을 사용하여 example을 다른 이름으로 변경하면 ContainsSyntaxError에서의 참조는 업데이트되지 않고 다른 두 참조는 업데이트됩니다.

    public class Class1
    {
        static int example;

        static void ContainsSyntaxError()
        {
            example = 20
        }

        static void ContainsSemanticError()
        {
            example = "Three";
        }

        static void ContainsNoError()
        {
            example = 1;
        }
    }

참고 항목

개념

리팩터링