Visual C# IntelliSenseVisual C# IntelliSense

Visual C# IntelliSense는 편집기에서 코딩할 때와 직접 실행 모드 명령 창에서 디버그하는 동안 사용할 수 있습니다.Visual C# IntelliSense is available when coding in the editor, and while debugging in the Immediate Mode command window.

완성 목록Completion Lists

Visual C#의 IntelliSense 완성 목록에는 멤버 목록, 단어 자동 완성 등의 토큰이 있습니다.The IntelliSense completion lists in Visual C# contain tokens from List Members, Complete Word, and more. 이를 통해 다음 항목에 빠르게 액세스할 수 있습니다.It provides quick access to:

  • 형식 또는 네임스페이스의 멤버Members of a type or namespace

  • 변수, 명령 및 함수 이름Variables, commands, and functions names

  • 코드 조각Code snippets

  • 언어 키워드Language Keywords

  • 확장명 메서드Extension Methods

또한 C#의 완성 목록은 컨텍스트에 따라 관련이 없는 토큰을 필터링하고 토큰을 미리 선택할 정도로 스마트합니다.The Completion List in C# is also smart enough to filter out irrelevant tokens and pre-select a token based on context. 자세한 내용은 필터링된 완성 목록을 참조하세요.For more information, see Filtered Completion Lists.

완성 목록의 코드 조각Code Snippets in Completion Lists

Visual C#의 완성 목록에는 미리 정의된 코드 본문을 프로그램에 쉽게 삽입하도록 지원하는 코드 조각이 포함되어 있습니다.In Visual C#, the completion list includes code snippets to help you easily insert predefined bodies of code into your program. 코드 조각은 완성 목록에 코드 조각의 바로 가기 텍스트로 나타납니다.Code snippets appear in the completion list as the snippet's shortcut text. Visual C#에서 기본적으로 사용할 수 있는 코드 조각에 대한 자세한 내용은 Visual C# 코드 조각을 참조하세요.For more information about code snippets that are available in Visual C# by default, see Visual C# Code Snippets.

완성 목록의 언어 키워드Language Keywords in Completion Lists

Visual C#의 완성 목록에는 언어 키워드도 포함되어 있습니다.In Visual C#, the completion list also includes language keywords. C# 언어 키워드에 대한 자세한 내용은 C# 키워드를 참조하세요.For more information about C# language keywords, see C# Keywords.

완성 목록의 확장명 메서드Extension Methods in Completion Lists

Visual C#의 완성 목록에는 범위에 속한 확장 메서드가 포함되어 있습니다.In Visual C#, the completion list includes Extension Methods that are in scope.

참고

완성 목록에 String 개체의 모든 확장 메서드가 표시되지는 않습니다.The completion list does not display all extension methods for String objects.

확장명 메서드는 인스턴스 메서드와 다른 아이콘을 사용합니다.Extension methods use a different icon than instance methods. 목록 아이콘의 목록은 클래스 뷰 및 개체 브라우저 아이콘을 참조하세요.For a listing of list icons, see Class View and Object Browser Icons. 인스턴스 메서드와 확장명 메서드가 이름이 같고 둘 다 범위에 속할 경우 완성 목록에는 확장명 메서드 아이콘이 표시됩니다.When an instance method and extension method with the same name are both in scope, the completion list displays the extension method icon.

필터링된 완성 목록Filtered Completion Lists

IntelliSense는 필터를 사용하여 완성 목록에서 불필요한 멤버를 제거합니다.IntelliSense removes unnecessary members from the completion list by using filters. Visual C#은 다음 항목에 대해 표시되는 완성 목록을 필터링합니다.Visual C# filters the completion lists that appear for these items:

  • 인터페이스 및 기본 클래스: IntelliSense는 클래스 선언 기본 및 인터페이스 목록과 제약 조건 목록 둘 다의 인터페이스 및 기본 클래스 완성 목록에서 항목을 자동으로 제거합니다.Interfaces and base classes: IntelliSense automatically removes items from the interface and base class completion lists, in both class declaration base and interface lists and constraint lists. 예를 들어 열거형은 기본 클래스에 사용할 수 없으므로 열거형이 기본 클래스의 완성 목록에 표시되지 않습니다.For example, enums do not appear in the completion list for base classes, because enums cannot be used for base classes. 기본 클래스의 완성 목록에는 인터페이스와 네임스페이스만 포함되어 있습니다.The completion list of base classes only contains interfaces and namespaces. Visual C#에서 다중 상속을 지원하지 않으므로 목록의 항목을 선택한 후 쉼표를 입력하는 경우 IntelliSense의 완성 목록에서 기본 클래스가 제거됩니다.If you select an item in the list and then type a comma, IntelliSense removes base classes from the completion list because Visual C# does not support multiple inheritance. 제약 조건 절에 대해서도 동일한 동작이 수행됩니다.The same behavior occurs for constraint clauses also.

  • 특성: 형식에 특성을 적용할 경우 완성 목록은 Attribute와 같이 해당 형식이 포함된 네임스페이스에서 물려받은 형식만 목록에 포함하도록 필터링됩니다.Attributes: When you apply an attribute to a type, the completion list is filtered so that the list only contains those types that descend from the namespaces that contain those types, such as Attribute.

  • Catch 절Catch clauses

  • 개체 이니셜라이저: 초기화할 수 있는 멤버만 완성 목록에 표시됩니다.Object initializers: Only members that can be initialized will appear in the completion list.

  • new 키워드: new를 입력한 후 스페이스바를 누르면 완성 목록이 표시됩니다.new keyword: When you type new and then press the SPACEBAR, a completion list appears. 코드의 컨텍스트에 따라 항목이 목록에서 자동으로 선택됩니다.An item is automatically selected in the list, based on the context in your code. 예를 들어 메서드의 선언 문과 반환 문에 대한 항목이 완성 목록에서 자동으로 선택됩니다.For example, items are automatically selected in the completion list for declarations and for return statements in methods.

  • enum 키워드: 열거형 할당의 등호 이후에 스페이스바를 누르면 완성 목록이 표시됩니다.enum keyword: When you press the SPACEBAR after an equal sign for an enum assignment, a completion list appears. 코드의 컨텍스트에 따라 항목이 목록에서 자동으로 선택됩니다.An item is automatically selected in the list, based on the context in your code. 예를 들어 return 키워드를 입력한 후 그리고 선언을 만들 때 항목이 완성 목록에서 자동으로 선택됩니다.For example, items are automatically selected in the completion list after you type the keyword return and when you make a declaration.

  • as 및 is 연산자: 필터링된 완성 목록은 as 또는 is 키워드를 입력한 후 스페이스바를 누르면 자동으로 표시됩니다.as and is operators: A filtered completion list is displayed automatically when you press the SPACEBAR after you have typed the as or is keyword.

  • 이벤트: event 키워드를 입력하면 완성 목록에 대리자 형식만 포함됩니다.Events: When you type the keyword event, the completion list only contains delegate types.

  • 매개 변수 도움말은 사용자가 입력하는 매개 변수와 일치하는 첫 번째 메서드 오버로드에 대해 자동으로 정렬됩니다.Parameter help automatically sorts to the first method overload that matches the parameters as you enter them. 여러 메서드 오버로드를 사용할 수 있는 경우 위쪽/아래쪽 화살표 키를 사용하여 목록에서 가능한 다음 오버로드로 이동할 수 있습니다.If multiple method overloads are available, you can use the up and down arrows to navigate to the next possible overload in the list.

가장 최근에 사용한 멤버Most recently used members

IntelliSense는 자동 개체 이름 완성을 위해 팝업 멤버 목록 상자에서 최근에 선택한 멤버를 기억합니다.IntelliSense remembers the members that you have recently selected in the pop-up List Members box for automatic object name completion. 다음번에 멤버 목록을 사용할 때 가장 최근에 사용한 멤버가 맨 위에 표시됩니다.The next time you use Member List, the most recently used members are shown at the top. 가장 최근에 사용한 멤버의 기록은 IDE의 각 세션 사이에서 지워집니다.The history of most recently used members is cleared between each session in the IDE.

overrideoverride

override를 입력하고 스페이스바를 누르면 IntelliSense가 팝업 목록 상자에서 재정의할 수 있는 모든 유효한 기본 클래스 멤버를 표시합니다.When you type override and then press SPACEBAR, IntelliSense displays all of the valid base class members that you can override in a pop-up list box. override 뒤에 메서드의 반환 형식을 입력하면 IntelliSense가 같은 형식을 반환하는 메서드만 표시합니다.Typing the return type of the method after override will prompt IntelliSense to only show methods that return the same type. IntelliSense가 일치 항목을 찾을 수 없으면 기본 클래스 멤버가 모두 표시됩니다.When IntelliSense cannot find any matches, it will display all of the base class members.

자동 코드 생성Automatic Code Generation

using 추가Add using

using 추가 IntelliSense 작업은 필요한 using 지시문을 코드 파일에 자동으로 추가합니다.The Add using IntelliSense operation automatically adds the required using directive to your code file. 이 기능을 사용하면 코드의 다른 부분으로 포커스를 이동할 필요 없이 작성 중인 코드에 포커스를 유지할 수 있습니다.This feature enables you to maintain your focus on the code you are writing rather than requiring you to shift your focus to another part of the code.

using 추가 작업을 시작하려면 확인할 수 없는 형식 참조에 커서를 놓습니다.To initiate the Add using operation, position the cursor on a type reference that cannot be resolved. 예를 들어 콘솔 응용 프로그램을 만든 다음 XmlTextReaderMain 메서드의 본문에 추가하면 형식 참조를 확인할 수 없으므로 빨간색 물결선이 해당 코드 줄에 나타납니다.For example, when you create a console application and then add XmlTextReader to the body of the Main method, a red squiggle appears on that line of code because the type reference cannot be resolved. 그런 다음 빠른 작업을 통해 using 추가를 호출할 수 있습니다.You can then invoke the Add using through the Quick Action. 빠른 작업은 커서가 바인딩되지 않은 형식에 있을 때만 표시됩니다.The Quick Action is only visible when the cursor is positioned on the unbound type.

using 추가, 빠른 작업 확장된 이미지Add using, quick action expanded image

전구 아이콘을 클릭한 다음 using System.Xml;을 선택하여 using 지시문을 자동으로 추가합니다.Click the light bulb icon, and then choose using System.Xml; to automatically add the using directive.

using 구성Organize usings

Using 구성 옵션은 소스 코드의 동작을 변경하지 않고 usingextern 선언을 정렬하고 제거합니다.The Organize Usings options sort and remove using and extern declarations without changing the behavior of the source code. 시간이 지나면서 구성되지 않고 불필요한 using 지시문 때문에 소스 파일이 커지고 읽기 어려워집니다.Over time, source files may become bloated and difficult to read because of unnecessary and unorganized using directives. Using 구성 옵션은 사용되지 않은 using 지시문을 제거하여 소스 코드를 압축하고 정렬을 통해 가독성을 높입니다.The Organize Usings options compact source code by removing unused using directives and improves readability by sorting them.

Visual Studio IDE에서 사용할 수 있는 옵션을 보려면 편집 메뉴에서 IntelliSense를 가리킨 후 Using 구성을 가리킵니다.To see the available options in the Visual Studio IDE, on the Edit menu, point to IntelliSense, and then point to Organize Usings. IDE는 usings 지시문을 구성하고 제거하는 다음 옵션을 제공합니다.The IDE provides the following options to organize and remove usings directives:

인터페이스 구현Implement Interface

IntelliSense는 코드 편집기에서 작업하는 동안 인터페이스를 구현하는 데 도움이 되는 옵션을 제공합니다.IntelliSense provides an option to help you implement an interface while working in the Code Editor. 일반적으로 인터페이스를 제대로 구현하려면 클래스에서 인터페이스의 모든 멤버에 대한 메서드 선언을 생성해야 합니다.Normally, to implement an interface properly, you must create a method declaration for every member of the interface in your class. IntelliSense를 사용하여 클래스 선언에서 인터페이스의 이름을 입력하면 빠른 작업 전구가 표시됩니다.Using IntelliSense, after you type the name of an interface in a class declaration, a Quick Actions light bulb is displayed. 전구는 명시적 또는 암시적 명명을 사용하여 자동으로 인터페이스를 구현하는 옵션을 제공합니다.The light bulb gives you the option to implement the interface automatically, using explicit or implicit naming. 명시적 명명에서 메서드 선언은 인터페이스의 이름을 전달하고, 암시적 명명에서 메서드 선언은 속해 있는 인터페이스를 나타내지 않습니다.Under explicit naming, the method declarations carry the name of the interface; under implicit naming, the method declarations do not indicate the interface to which they belong. 명시적으로 명명된 인터페이스는 인터페이스 인스턴스를 통해서만 액세스할 수 있으며 클래스 인스턴스를 통해서는 액세스할 수 없습니다.An explicitly named interface method can only be accessed through an interface instance, and not through a class instance. 자세한 내용은 명시적 인터페이스 구현을 참조하세요.For more information, see Explicit Interface Implementation.

인터페이스 구현은 인터페이스를 충족하는 데 필요한 최소 수의 메서드 스텁을 생성합니다.Implement Interface will generate the minimum number of method stubs that is required to satisfy the interface. 기본 클래스에서 인터페이스의 일부를 구현하면 이러한 스텁이 다시 생성되지 않습니다.If a base class implements parts of the interface, then those stubs are not regenerated.

추상 기본 클래스 구현Implement abstract base class

IntelliSense는 코드 편집기에서 작업하는 동안 자동으로 추상 기본 클래스의 멤버를 구현하는 데 도움이 되는 옵션을 제공합니다.IntelliSense provides an option to help you implement members of an abstract base class automatically while working in the Code Editor. 일반적으로 추상 기본 클래스의 멤버를 구현하려면 파생 클래스에서 추상 기본 클래스의 각 메서드에 대한 새 메서드 정의를 만들어야 합니다.Normally, to implement members of an abstract base class requires creating a new method definition for each method of the abstract base class in your derived class. IntelliSense를 사용하여 클래스 선언에서 추상 기본 클래스의 이름을 입력하면 빠른 작업 전구가 표시됩니다.Using IntelliSense, after typing the name of an abstract base class in a class declaration, a Quick Actions light bulb is displayed. 전구는 자동으로 기본 클래스 메서드를 구현하는 옵션을 제공합니다.The light bulb gives you the option to implement the base class methods automatically.

추상 기본 클래스 구현 기능에서 생성되는 메서드 스텁은 MethodStub.snippet 파일에 정의된 코드 조각을 통해 모델링됩니다.The method stubs that are generated by the Implement Abstract Base Class feature are modeled by the code snippet defined in the file MethodStub.snippet. 코드 조각은 수정 가능합니다.Code Snippets are modifiable. 자세한 내용은 연습: 코드 조각 만들기를 참조하세요.For more information, see Walkthrough: Creating a Code Snippet.

관례에서 생성Generate from usage

관례에서 생성 기능을 사용하면 클래스와 멤버를 정의하기 전에 사용할 수 있습니다.The Generate From Usage feature enables you to use classes and members before you define them. 사용하려고 하지만 아직 정의하지 않은 모든 클래스, 생성자, 메서드, 속성, 필드 또는 열거형의 스텁을 생성할 수 있습니다.You can generate a stub for any class, constructor, method, property, field, or enum that you want to use but have not yet defined. 코드에서 현재 위치를 벗어나지 않고 새 형식 및 멤버를 생성할 수 있습니다.You can generate new types and members without leaving your current location in code. 이렇게 하면 워크플로의 중단이 최소화됩니다.This minimizes interruption to your workflow.

빨간색 물결선 밑줄이 정의되지 않은 각 식별자 아래에 나타납니다.A red wavy underline appears under each undefined identifier. 식별자에 마우스 포인터를 놓으면 오류 메시지가 도구 설명에 나타납니다.When you rest the mouse pointer on the identifier, an error message appears in a tooltip. 적절한 옵션을 표시하려면 다음 절차 중 하나를 사용할 수 있습니다.To display the appropriate options, you can use one of the following procedures:

  • 정의되지 않은 식별자를 클릭합니다.Click the undefined identifier. 빠른 작업 전구가 식별자 아래에 나타납니다.A Quick Actions light bulb appears under the identifier. 전구를 클릭합니다.Click the light bulb.

  • 정의되지 않은 식별자를 클릭한 다음 Ctrl+.Click the undefined identifier, and then press Ctrl+. (Ctrl + 마침표)를 누릅니다.(Ctrl + period).

  • 정의되지 않은 식별자를 마우스 오른쪽 단추로 클릭한 다음 빠른 작업 및 리팩터링을 클릭합니다.Right-click the undefined identifier, and then click Quick Actions and Refactorings.

표시되는 옵션에는 다음이 포함될 수 있습니다.The options that appear can include the following:

  • 속성 생성Generate property

  • 필드 생성Generate field

  • 메서드 생성Generate method

  • 클래스 생성Generate class

  • 새 형식 생성...(클래스, 구조체, 인터페이스 또는 열거형의 경우)Generate new type... (for a class, struct, interface, or enum)

이벤트 처리기 생성Generate event handlers

코드 편집기에서 IntelliSense는 메서드(이벤트 처리기)를 이벤트 필드에 연결하는 데 도움이 될 수 있습니다.In the Code Editor, IntelliSense can help you hook up methods (event handlers) to event fields.

.cs 파일에서 이벤트 필드 뒤에 += 연산자를 입력하는 경우 IntelliSense는 Tab 키를 누르는 옵션을 표시합니다.When you type the += operator after an event field in a .cs file, IntelliSense prompts you with the option to press the TAB key. 이때 이벤트를 처리하는 메서드를 가리키는 대리자의 새 인스턴스가 삽입됩니다.This inserts a new instance of a delegate that points to the method handling the event.

단추 자동 연결Button Auto Hook Up

Tab 키를 누르는 경우 IntelliSense는 자동으로 문을 완료하고 이벤트 처리기 참조를 코드 편집기에서 선택된 텍스트로 표시합니다.If you press TAB, IntelliSense automatically finishes the statement for you and displays the event handler reference as selected text in the Code Editor. 자동 이벤트 연결을 완료하기 위해 IntelliSense는 이벤트 처리기에 대한 빈 스텁을 만들려면 Tab 키를 다시 누르라는 메시지를 표시합니다.To complete the automatic event hookup, IntelliSense prompts you to press the TAB key again to create an empty stub for the event handler.

이벤트 처리기 생성Generate Event Handler

참고

IntelliSense에 의해 만들어진 새 대리자가 기존 이벤트 처리기를 참조하는 경우 IntelliSense는 도구 설명에 이 정보를 전달합니다.If a new delegate that is created by IntelliSense references an existing event handler, IntelliSense communicates this information in the tooltip. 이 참조는 수정할 수 있습니다. 텍스트가 코드 편집기에서 이미 선택되어 있습니다.You can then modify this reference; the text is already selected in the Code Editor. 그렇지 않은 경우에는 자동 이벤트 연결이 이 시점에서 완료됩니다.Otherwise, automatic event hookup is complete at this point.

Tab 키를 누르는 경우 IntelliSense에서 올바른 서명으로 메서드가 스텁 아웃되고 이벤트 처리기의 본문에 커서가 위치합니다.If you press TAB, IntelliSense stubs out a method with the correct signature and puts the cursor in the body of your event handler.

참고

이벤트 연결 문으로 돌아가려면 보기 메뉴에서 뒤로 탐색 명령(Ctrl+-)을 사용합니다.Use the Navigate Backward command on the View menu (CTRL+-) to go back to the event hookup statement.

참고 항목See Also

Visual Studio IDEVisual Studio IDE