C# IntelliSense는 언어별 코드 완성 지원입니다. 코드 편집기에서 C# 코드를 작성하고 직접 실행 모드 명령 창에서 디버그할 때 사용할 수 있습니다.
완료 목록
C#의 IntelliSense 완성 목록에는 멤버 목록, Word 완료 등의 토큰이 포함되어 있습니다. 다음을 빠르게 액세스할 수 있습니다.
형식 또는 네임스페이스의 멤버
변수, 명령 및 함수 이름
코드 조각
언어 키워드
확장 메서드
C#의 완성 목록은 컨텍스트에 따라 관련 없는 토큰을 필터링하고 토큰을 미리 선택합니다. 자세한 내용은 필터링된 완료 목록을 참조하세요.
완료 목록의 코드 조각
C#에서 완성 목록에는 미리 정의된 코드 본문을 프로그램에 쉽게 삽입하는 데 도움이 되는 코드 조각이 포함되어 있습니다. 코드 조각은 완료 목록에 코드 조각의 바로 가기 텍스트로 표시됩니다. 기본적으로 C#에서 사용할 수 있는 코드 조각에 대한 자세한 내용은 C# 코드 조각을 참조하세요.
완성 목록의 언어 키워드
완성 목록에는 프로그램에 삽입하는 데 도움이 되는 C# 언어 키워드가 포함되어 있습니다. C# 언어 키워드에 대한 자세한 내용은 C# 키워드를 참조하세요.
완료 목록의 확장 메서드
C#에서 완성 목록에는 범위에 있는 확장 메서드가 포함됩니다.
확장 메서드는 인스턴스 메서드와 다른 아이콘을 사용합니다. 이름이 같은 인스턴스 메서드와 확장 메서드가 모두 범위에 있으면 완성 목록에 확장 메서드 아이콘이 표시됩니다.
비고
개체의 경우 String 완성 목록에는 모든 확장 메서드가 표시되지 않습니다.
필터링된 완료 목록
IntelliSense는 필터를 사용하여 완성 목록에서 불필요한 멤버를 제거합니다. C#은 다음 항목에 대해 표시되는 완성 목록을 필터링합니다.
인터페이스 및 기본 클래스: IntelliSense는 인터페이스 및 기본 클래스 완성 목록에서 불필요한 항목을 자동으로 제거합니다. 이 제거에는 클래스 선언 기반과 인터페이스 목록 및 제약 조건 목록이 포함됩니다. 예를 들어 열거형은 기본 클래스에 사용할 수 없으므로 기본 클래스의 완료 목록에 표시되지 않습니다. 기본 클래스의 완성 목록에는 인터페이스 및 네임스페이스만 포함됩니다. 목록에서 항목을 선택한 다음 쉼표 키를 입력하면 IntelliSense는 완료 목록에서 기본 클래스를 제거합니다. C#은 여러 상속을 지원하지 않으므로 이 작업을 수행합니다. 제약 조건 절에도 동일한 동작이 발생합니다.
특성: 형식에 특성을 적용하면 해당 형식이 포함된 네임스페이스에서 내림차순인 형식만 목록에 포함되도록 완성 목록이 필터링됩니다. 예: Attribute.
Catch 절: 유효한 try-catch 키워드만 완성 목록에 표시됩니다.
개체 이니셜라이저: 초기화할 수 있는 멤버만 완성 목록에 표시됩니다.
new 키워드: 스페이스바를 입력
new한 다음 스페이스바 를 누르면 완성 목록이 나타납니다. IntelliSense는 코드의 컨텍스트에 따라 목록에서 항목을 자동으로 선택합니다. 예를 들어 IntelliSense는 메서드의 선언 및 반환 문에 대한 완성 목록의 항목을 자동으로 선택합니다.열거형 키워드: 열거형 할당에 대한 등호 다음에 스페이스 키를 누르면 완료 목록이 나타납니다. IntelliSense는 코드의 컨텍스트에 따라 목록에서 항목을 자동으로 선택합니다. 예를 들어 IntelliSense는 키워드를 입력
return한 후 선언할 때 완성 목록에서 항목을 자동으로 선택합니다.as 및 is 연산자: IntelliSense는 또는 키워드를 입력
as한 후is키를 누르면 필터링된 완성 목록을 자동으로 표시합니다.이벤트: 키워드
event를 입력하면 완성 목록에 대리자 형식만 포함됩니다.매개 변수 도움말: IntelliSense는 입력할 때 매개 변수와 일치하는 첫 번째 메서드 오버로드를 자동으로 정렬합니다. 여러 메서드 오버로드를 사용할 수 있는 경우 위쪽 및 아래쪽 화살표를 사용하여 목록에서 가능한 다음 오버로드로 이동할 수 있습니다.
가장 최근에 사용한 멤버
IntelliSense는 자동 개체 이름 완성을 위해 팝업 멤버 목록 상자에서 최근에 선택한 멤버를 기억합니다. 다음에 멤버 목록을 사용할 때 가장 최근에 사용한 멤버가 맨 위에 표시됩니다. IntelliSense는 각 Visual Studio 세션 간에 가장 최근에 사용한 멤버의 기록을 지웁니다.
무시하다
재정의를 입력한 다음 Space 키를 누르면 IntelliSense는 팝업 목록 상자에서 재정의할 수 있는 유효한 기본 클래스 멤버를 모두 표시합니다. 동일한 형식을 반환하는 메서드만 표시하라는 메시지가 표시되면 메서드 override 의 반환 형식을 입력합니다. IntelliSense에서 일치하는 항목을 찾을 수 없는 경우 모든 기본 클래스 멤버가 표시됩니다.
AI 향상 IntelliSense
Visual Studio IntelliCode 는 인공 지능 향상 IntelliSense 완성 목록을 제공합니다. IntelliCode는 사전순 멤버 목록을 표시하는 대신 사용할 가능성이 가장 큰 올바른 API를 예측합니다. 현재 코드 컨텍스트 및 패턴을 사용하여 동적 목록을 제공합니다.
자동 코드 생성
using 추가
IntelliSense 를 사용하여 추가 작업은 코드 파일에 필요한 using 지시문을 자동으로 추가합니다. 이 기능을 사용하면 코드의 다른 부분으로 포커스를 이동하도록 요구하지 않고 작성 중인 코드에 포커스를 유지할 수 있습니다.
Using 추가 작업을 시작하려면 확인할 수 없는 형식 참조에 커서를 놓습니다. 예를 들어 콘솔 애플리케이션을 만든 다음 메서드 본 XmlReader 문에 추가 Main 하면 형식 참조를 확인할 수 없으므로 해당 코드 줄에 빨간색 물결선이 나타납니다. 그런 다음 빠른 작업 메뉴를 통해 추가 사용 작업을 호출할 수 있습니다.
사용 <네임스페이스> 메뉴 항목은 커서가 해결되지 않은 참조에 배치된 경우에만 표시됩니다.
이 예제에서는 지시문을 코드에 using 자동으로 추가하려면 오류 전구 아이콘을 선택한 다음 System.Xml을 사용하여 선택합니다.
붙여넣을 때 누락된 using 지시문 추가
코드 파일에 형식을 붙여넣으면 IntelliSense에서 누락된 using 지시문을 코드에 자동으로 추가할 수 있습니다. 이 기능은 형식을 파일에 붙여넣을 때 누락된 using 지시문을 추가하는 작업을 자동화하여 시간을 절약합니다.
이 기능을 사용하도록 설정하려면 다음을 수행합니다.
- 도구>옵션을 선택합니다.
- 왼쪽 창에서 텍스트 편집기>C# (또는 Visual Basic) >고급 을 선택합니다.
- Using 지시문 아래에서 붙여넣을 때 누락된 using 지시문 추가를 선택합니다.
using 제거 및 정렬
Using 제거 및 정렬 옵션은 소스 코드의 동작을 using 변경하지 않고 정렬 및 제거 및 extern 선언합니다. 시간이 지남에 따라 불필요하고 구성 using 되지 않은 지시문으로 인해 원본 파일이 너무 크고 읽기 어려울 수 있습니다.
Using 제거 및 정렬 옵션은 사용되지 using 않는 지시문을 제거하여 소스 코드를 압축하고 정렬하여 가독성을 향상시킵니다.
이 옵션을 사용하려면 메뉴 모음에서IntelliSense>정렬 사용>을 선택하거나 코드 편집기를 마우스 오른쪽 단추로 클릭하고 Using 제거 및 정렬을 선택합니다.
인터페이스 구현
IntelliSense는 코드 편집기에서 작업하는 동안 인터페이스 를 구현하는 데 도움이 되는 옵션을 제공합니다. 일반적으로 인터페이스를 올바르게 구현하려면 클래스의 모든 인터페이스 멤버에 대한 메서드 선언을 만들어야 합니다. 클래스 선언에 인터페이스의 이름을 입력하면 IntelliSense에 빠른 작업 전구가 표시됩니다. 전구는 명시적 또는 암시적 이름을 사용하여 인터페이스를 자동으로 구현하는 옵션을 제공합니다. 명시적 명명에서 메서드 선언은 인터페이스의 이름을 전달합니다. 암시적 명명에서 메서드 선언은 해당 선언이 속한 인터페이스를 나타내지 않습니다. 명시적으로 명명된 인터페이스 메서드는 클래스 인스턴스를 통해서가 아니라 인터페이스 인스턴스를 통해서만 액세스할 수 있습니다. 자세한 내용은 명시적 인터페이스 구현을 참조하세요.
인터페이스 구현은 인터페이스를 충족하는 데 필요한 메서드 스텁의 최소 수를 생성합니다. 기본 클래스가 인터페이스의 일부를 구현하는 경우 해당 스텁은 다시 생성되지 않습니다.
추상 기본 클래스 구현
IntelliSense는 코드 편집기에서 작업하는 동안 추상 기본 클래스의 멤버를 자동으로 구현하는 데 도움이 되는 옵션을 제공합니다. 일반적으로 추상 기본 클래스의 멤버를 구현하려면 파생 클래스에서 추상 기본 클래스의 각 메서드에 대한 새 메서드 정의를 만들어야 합니다. 클래스 선언에 추상 기본 클래스의 이름을 입력하면 IntelliSense에 빠른 작업 전구가 표시됩니다. 전구는 기본 클래스 메서드를 자동으로 구현하는 옵션을 제공합니다.
추상 기본 클래스 구현 기능에 의해 생성되는 메서드 스텁은 MethodStub.snippet 파일에 정의된 코드 조각에 의해 모델링됩니다. 코드 조각은 수정할 수 있습니다. 자세한 내용은 연습: Visual Studio에서 코드 조각 만들기를 참조하세요.
사용량에서 생성
사용에서 생성 기능을 사용하면 클래스 및 멤버를 정의하기 전에 사용할 수 있습니다. 사용하지만 정의되지 않은 클래스, 생성자, 메서드, 속성, 필드 또는 열거형에 대한 스텁을 생성할 수 있습니다. 코드에서 현재 위치를 그대로 두지 않고 새 형식 및 멤버를 생성할 수 있습니다. 이렇게 하면 워크플로 중단이 최소화됩니다.
정의되지 않은 각 식별자 아래에 빨간색 물결선이 나타납니다. 식별자에서 마우스 포인터를 가리키면 도구 설명에 오류 메시지가 나타납니다. 적절한 옵션을 표시하려면 다음 절차 중 하나를 사용합니다.
정의되지 않은 식별자를 선택합니다. 식별자 아래에 빠른 작업 오류 전구가 나타납니다. 오류 전구를 선택합니다.
정의되지 않은 식별자를 선택한 다음 Ctrl+마침표 (.)를 누릅니다.
정의되지 않은 식별자를 마우스 오른쪽 단추로 클릭한 다음 빠른 작업 및 리팩터링을 선택합니다.
다음 옵션이 나타날 수 있습니다.
속성 생성
필드 생성
Generate 메서드
클래스 생성
새 형식 생성 (클래스, 구조체, 인터페이스 또는 열거형의 경우)
이벤트 처리기 생성
코드 편집기에서 IntelliSense는 메서드(이벤트 처리기)를 이벤트 필드에 연결하는 데 도움이 될 수 있습니다.
+= 파일에서 이벤트 필드 뒤의 연산자를 입력 하면 IntelliSense에서 Tab 키를 누를 수 있는 옵션을 묻는 메시지를 표시합니다. 이렇게 하면 이벤트를 처리하는 메서드를 가리키는 대리자의 새 인스턴스가 삽입됩니다.
Tab 키를 누르면 IntelliSense에서 자동으로 문을 완료하고 이벤트 처리기 참조를 코드 편집기에서 선택한 텍스트로 표시합니다. 자동 이벤트 연결을 완료하기 위해 IntelliSense는 Tab 키를 다시 눌러 이벤트 처리기에 대한 빈 스텁을 만들라는 메시지를 표시합니다.
Tab 키를 다시 누르면 IntelliSense는 올바른 서명이 있는 메서드 스텁을 추가하고 이벤트 처리기의 본문에 커서를 놓습니다.
IntelliSense에서 만든 새 대리자가 기존 이벤트 처리기를 참조하는 경우 IntelliSense는 도구 설명에서 이 정보를 전달합니다. 그런 다음, 이 참조를 수정할 수 있습니다. 코드 편집기에서 텍스트가 이미 선택되어 있습니다. 그렇지 않으면 이제 자동 이벤트 연결이 완료됩니다.
비고
보기 메뉴(Ctrl+)에서 - 명령을 사용하여 이벤트 연결 문으로 돌아갑니다.