컨텍스트 액션

ReSharper의 컨텍스트 액션은 코드에 사소한 변경 내용을 적용해야 할 때 코드 입력의 수고를 크게 덜어줍니다. 액세스 한정자를 변경하고, null 검사 코드를 생성하고, foreachfor로 또는 그 반대로 변환하는 등 모든 작업을 몇 번의 키 입력만으로 수행할 수 있습니다. C#, VB.NET, XAML, ASP.NET 및 기타 지원되는 언어에서 450가지 이상의 컨텍스트 액션을 이용할 수 있습니다. 변경하려는 코드 요소 위에서 Alt+Enter를 누르고 적용할 컨텍스트 액션을 선택하세요.

ReSharper의 컨텍스트 액션

컨텍스트 액션 적용

현재 캐럿 위치에서 컨텍스트 액션을 사용할 수 있는 경우, ReSharper에서 캐럿 왼쪽에 망치 아이콘ReSharper's context action indicator을 즉시 표시합니다. 컨텍스트 액션과 빠른 수정을 결합하는 등 컨텍스트에 따라 여러 가지 기능을 사용할 수 있는 경우, 최우선순위를 가진 액션의 아이콘이 표시됩니다. 사용 가능한 모든 액션을 보려면 액션 표시기를 클릭하거나 Alt+Enter를 누르세요.

유사한 컨텍스트 액션(예: 다양한 액세스 한정자에 대한 액션)들은 함께 그룹으로 지정되기도 합니다. 이러한 경우, 오른쪽 방향키를 사용해 그룹을 펼쳐서 원하는 액션을 선택하세요.

더 넓은 범위(파일, 프로젝트 또는 솔루션)에서 컨텍스트 액션 적용

더 넓은 범위에서 컨텍스트 액션 적용

일부 컨텍스트 액션(Remove #regions(#regions 제거), Specify enum member values(enum 멤버 값 지정), Add name to argument(인수에 이름 추가) 등)은 더 넓은 범위(현재 메서드, 클래스, 파일, 현재 프로젝트 또는 전체 솔루션)에서 자동으로 적용할 수 있습니다. 변경 내용을 적용할 위치는 오른쪽에 있는 작은 화살표를 클릭하거나 키보드에서 오른쪽 방향키를 눌러 선택할 수 있습니다.

빠른 수정 vs 컨텍스트 액션

컨텍스트 액션 vs 빠른 수정

또한 ReSharper는 컨텍스트 액션과 함께 드롭다운 목록에 표시되는 빠른 수정 기능을 제공합니다. 이 두 기능의 차이는 간단합니다. 빠른 수정은 코드를 수정하여 개선하려는 목적으로 강조 표시된 코드 문제가 있을 때만 표시되는 반면, 컨텍스트 액션은 단순히 코드를 변경하는 작은 규모의 리팩터링을 보여줍니다.

빠른 수정의 우선순위가 더 높으므로 캐럿에 빠른 수정이 표시된 경우, 컨텍스트 액션을 확인하려면 Alt+Enter를 눌러야 합니다.

컨텍스트 액션으로 C#에서 null 검사 적용

C#: 매개변수의 null 값 검사 예시

ReSharper에서는 매개변수가 null 값을 가지고 있는지 검사하기 위해 코드를 입력할 필요가 없습니다. 간단히 Alt+Enter를 누르기만 하면 ReSharper가 사용자를 대신해 전체 null 검사 루틴을 생성합니다.

그 외에 프로젝트에서 JetBrains 코드 주석을 사용할 경우, 매개변수가 [NotNull] 속성으로 지정되어 매개변수의 값이 null인 메서드가 실행되면 ReSharper에서 이를 경고합니다.

ReSharper 컨텍스트 액션을 사용해 LINQ를 코드로 변환

C#: LINQ를 코드로 변환 예시

이 예시에서는 ReSharper 컨텍스트 액션이 LINQ 쿼리를 foreach 루프 및 람다 식으로 빠르게 변환하는 과정을 확인할 수 있습니다.

이 기능은 루프를 LINQ 구문으로 변환하는 ReSharper의 유명한 빠른 수정과 반대로 작동합니다.

ReSharper 컨텍스트 액션을 사용해 반복자를 컬렉션으로 변환

C#: 반복자를 컬렉션으로 변환 예시

일부 컨텍스트 액션은 논리를 보존하면서 복잡한 코드 변환을 자동화한다는 점에서 리팩터링과 유사합니다.

이 예시에서 ReSharper는 yield return 문을 가진 반복자를, 컬렉션을 생성, 내용 입력, 반환하는 코드로 변환할 수 있도록 돕습니다.

ReSharper 컨텍스트 액션을 사용해 선언 및 할당 분리

C#: 선언 및 할당 분리 예시

기존 지역 변수의 초기화에 조건을 추가해야 할 경우, 이 컨텍스트 액션을 사용하면 초기화를 빠르게 분리할 수 있습니다. 변수의 유형이 암묵적으로 지정된 경우라도, ReSharper가 올바른 유형을 자동으로 계산하여 선언에서 사용합니다.

ReSharper 컨텍스트 액션을 사용해 'if' 표현식 반전

C#: 'if' 문 반전 예시

이 컨텍스트 액션을 사용하면 if 문의 브랜치를 빠르게 바꿀 수 있습니다. ReSharper는 아무리 복잡한 조건이라도 제대로 무효화되었는지를 확인하여 논리가 변경되지 않도록 합니다.

ReSharper 컨텍스트 액션을 사용해 익명 메서드를 람다 식으로 변환 또는 반대로 변환

C#: 익명 메서드를 람다로 변환 또는 반대로 변환 예시

위임 객체(익명 메서드 또는 람다 식)에 어떤 구문이 사용되었든지 간에, ReSharper 컨텍스트 액션을 이용하면 코드를 일일이 재작성할 필요 없이 몇 번의 키 입력으로 구문을 변경할 수 있습니다.

컨텍스트 액션을 사용해 VB.NET에서 오버로드 생성

VB.NET: 매개변수 입력 없이 오버로드 생성 예시

이 컨텍스트 액션을 사용하면 코드를 작성할 필요 없이 선택한 매개변수의 기본값을 사용하는 메서드 오버로드를 생성할 수 있습니다.

이 액션은 C# 및 TypeScript에서도 사용할 수 있습니다.

XML과 같은 코드에 지원되는 ReSharper 컨텍스트 액션

XML과 같은 코드에 지원되는 컨텍스트 액션 예시

In XML-like languages, ReSharper's context actions help you streamline routine editing procedures of expanding/collapsing empty tags, and converting attributes to tags and back. 이 액션은 XML, XAML, ASP.NET, 빌드 스크립트, HTML 및 Resx 파일에서 사용할 수 있습니다.

컨텍스트 액션 설정

컨텍스트 액션 구성

If you don't want ReSharper to show a particular context action in the context menu, you can disable it in the ReSharper Options dialog.