다음을 통해 공유


ISymbol 인터페이스

정의

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

public interface class ISymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>
public interface ISymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>
type ISymbol = interface
    interface IEquatable<ISymbol>
Public Interface ISymbol
Implements IEquatable(Of ISymbol)
파생
구현

설명

이 인터페이스는 연결된 API에서 구현하기 위해 예약되어 있습니다. 우리는 미래에 그것을 변경할 수있는 권리를 보유합니다.

속성

CanBeReferencedByName

코드에서 이 기호를 해당 이름으로 참조할 수 있으면 true를 반환합니다.

ContainingAssembly

IAssemblySymbol 포함하는 어셈블리의 값을 가져옵니다. 기호가 여러 어셈블리에서 공유되면 null을 반환합니다.

ContainingModule

IModuleSymbol 포함하는 모듈의 값을 가져옵니다. 기호가 여러 모듈에서 공유되면 null을 반환합니다.

ContainingNamespace

INamespaceSymbol 가장 가까운 바깥쪽 네임스페이스에 대한 값을 가져옵니다. 기호가 네임스페이스에 포함되어 있지 않으면 null을 반환합니다.

ContainingSymbol

ISymbol 즉시 포함하는 기호에 대한 값을 가져옵니다.

ContainingType

INamedTypeSymbol 포함하는 형식의 값을 가져옵니다. 형식 내에 기호가 포함되어 있지 않으면 null을 반환합니다.

DeclaredAccessibility

기호에 Accessibility 대해 선언된 접근성을 나타내는 값을 가져옵니다. 접근성이 선언되지 않은 경우 NotApplicable을 반환합니다.

DeclaringSyntaxReferences

이 기호가 원본에서 선언된 구문 노드를 가져옵니다. 일부 기호(예: 부분 클래스)는 둘 이상의 위치에 정의될 수 있습니다. 이 속성은 기호가 소스 코드에서 선언되고 암시적으로 선언되지 않은 경우에만 하나 이상의 구문 노드를 반환해야 합니다(IsImplicitlyDeclared 속성 참조).

네임스페이스 기호의 경우 선언 구문이 중첩된 네임스페이스를 선언하는 것일 수 있습니다. 예를 들어 N1에 대한 선언 구문 노드는 "네임스페이스 N1입니다. N2 {...}" 는 N1에 대한 전체 NamespaceDeclarationSyntax입니다. N2. 전역 네임스페이스의 경우 선언 구문은 CompilationUnitSyntax입니다.

HasUnsupportedMetadata

이 기호가 언어에서 지원될 수 없는 메타데이터를 사용한다는 것을 나타냅니다.

다음은 이러한 템플릿의 예입니다.

  • VB의 포인터 형식
  • ByRef 반환 형식
  • 필수 사용자 지정 한정자

예를 들어 참조되지 않은 어셈블리에 정의된 메타데이터 기호에 대한 참조와 구별됩니다. true를 반환하는 기호는 성공적으로 사용할 수 없으므로 IDE 기능에 표시되지 않아야 합니다.

메타데이터 기호에 대해 다음과 같이 설정됩니다.

  • 형식 - 형식이 지원되지 않는 경우(예: 포인터 형식)
  • 메서드 - 매개 변수 또는 반환 형식이 지원되지 않음
  • 필드 - 형식이 지원되지 않음
  • 이벤트 - 형식이 지원되지 않음
  • 속성 - 형식이 지원되지 않음
  • 매개 변수 - 형식이 지원되지 않음
IsAbstract

기호가 추상인지 여부를 나타내는 값을 가져옵니다.

IsDefinition

기호가 원래 정의인지 여부를 나타내는 값을 가져옵니다. 기호가 다른 기호에서 파생된 경우 예를 들어 형식 대체에 따라 false를 반환합니다.

IsExtern

기호가 외부에서 정의되는지 여부를 나타내는 값을 가져옵니다.

IsImplicitlyDeclared

이 기호가 컴파일러에 의해 자동으로 만들어졌으며 명시적 해당 소스 코드 선언이 없는 경우 true를 반환합니다.

IsOverride

기호가 기본 클래스 기호의 재정의인지 여부를 나타내는 값을 가져옵니다.

IsSealed

기호가 봉인되었는지 여부를 나타내는 값을 가져옵니다.

IsStatic

기호가 정적인지 여부를 나타내는 값을 가져옵니다.

IsVirtual

기호가 가상인지 여부를 나타내는 값을 가져옵니다.

Kind

기호의 SymbolKind 종류를 나타내는 값을 가져옵니다.

Language

원본 언어("C#" 또는 "Visual Basic")를 가져옵니다.

Locations

원본 또는 메타데이터에서 기호가 원래 정의된 위치를 가져옵니다. 일부 기호(예: 부분 클래스)는 둘 이상의 위치에 정의될 수 있습니다.

MetadataName

메타데이터에 표시되는 기호의 이름을 가져옵니다. 대부분의 경우 다음 예외를 제외하고 Name 속성과 동일합니다.

  1. 제네릭 형식의 메타데이터 이름에는 형식 매개 변수 수를 나타내는 "'1", "'2" 등의 접미사가 포함됩니다(형식 또는 네임스페이스를 포함하는 이름은 포함하지 않음).
  2. 명시적 인터페이스 이름의 메타데이터 이름에는 이름 속성과 비교하여 공백이 제거됩니다.
  3. 이름 길이는 메타데이터 제한을 초과하지 않도록 제한됩니다.
MetadataToken

이 기호와 연결된 메타데이터 토큰을 가져오거나 메타데이터에서 기호가 로드되지 않은 경우 0을 가져옵니다.

Name

기호 이름을 가져옵니다. 이름이 없으면 빈 문자열을 반환합니다.

OriginalDefinition

기호의 ISymbol 원래 정의에 대한 값을 가져옵니다. 이 기호가 다른 기호에서 파생되는 경우 예를 들어 형식 대체를 통해 원본 또는 메타데이터에 정의된 대로 원래 기호를 가져옵니다.

메서드

Accept(SymbolVisitor)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

Accept<TResult>(SymbolVisitor<TResult>)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

Equals(ISymbol, SymbolEqualityComparer)

제공된 규칙에 따라 이 기호가 다른 기호와 같은지 확인합니다. SymbolEqualityComparer

GetAttributes()

기호의 특성을 가져옵니다. 특성이 없으면 빈 IEnumerable<T> 값을 반환합니다.

GetDocumentationCommentId()

기호에 대한 설명서 주석 ID를 반환하거나, 기호가 설명서 주석을 지원하지 않는 경우 null을 반환합니다.

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

기호와 연결된 주석의 XML(텍스트)을 가져옵니다.

ToDisplayParts(SymbolDisplayFormat)

기호를 각각 종류가 있는 문자열 부분의 배열로 변환합니다. 표시 문자열의 색을 지정하는 데 유용합니다.

ToDisplayString(SymbolDisplayFormat)

기호를 문자열 표현으로 변환합니다.

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

기호를 각각 종류가 있는 문자열 부분의 배열로 변환합니다. 소스 코드의 특정 위치에 맞게 조정할 수 있습니다. 표시 문자열의 색을 지정하는 데 유용합니다.

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

기호를 사용자에게 표시할 수 있는 문자열로 변환합니다. 소스 코드의 특정 위치에 맞게 조정할 수 있습니다.

확장 메서드

IsMustOverride(ISymbol)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

IsNotOverridable(ISymbol)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

IsOverridable(ISymbol)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

IsOverrides(ISymbol)

컴파일러에서 노출하는 기호(네임스페이스, 클래스, 메서드, 매개 변수 등)를 나타냅니다.

IsShared(ISymbol)

기호가 공유인지 여부를 확인합니다.

적용 대상