Freigeben über


ISymbol Schnittstelle

Definition

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

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)
Abgeleitet
Implementiert

Hinweise

Diese Schnittstelle ist für die Implementierung durch ihre zugeordneten APIs reserviert. Wir behalten uns das Recht vor, sie in Zukunft zu ändern.

Eigenschaften

CanBeReferencedByName

Gibt true zurück, wenn dieses Symbol durch seinen Namen im Code verwiesen werden kann.

ContainingAssembly

Ruft die für die IAssemblySymbol enthaltende Assembly ab. Gibt null zurück, wenn das Symbol über mehrere Assemblys freigegeben wird.

ContainingModule

Ruft das IModuleSymbol enthaltende Modul ab. Gibt null zurück, wenn das Symbol über mehrere Module freigegeben wird.

ContainingNamespace

Ruft den INamespaceSymbol nächsten eingeschlossenen Namespace ab. Gibt null zurück, wenn das Symbol nicht in einem Namespace enthalten ist.

ContainingSymbol

Ruft das ISymbol sofort enthaltende Symbol ab.

ContainingType

Ruft den INamedTypeSymbol enthaltenden Typ ab. Gibt null zurück, wenn das Symbol nicht innerhalb eines Typs enthalten ist.

DeclaredAccessibility

Ruft eine Accessibility Angabe der deklarierten Barrierefreiheit für das Symbol ab. Gibt NotApplicable zurück, wenn keine Barrierefreiheit deklariert wird.

DeclaringSyntaxReferences

Rufen Sie die Syntaxknoten(n) ab, in denen dieses Symbol in der Quelle deklariert wurde. Einige Symbole (z. B. Teilklassen) können an mehreren Speicherorten definiert werden. Diese Eigenschaft sollte nur einen oder mehrere Syntaxknoten zurückgeben, wenn das Symbol im Quellcode deklariert wurde und auch nicht implizit deklariert wurde (siehe die IsImplicitlyDeclared-Eigenschaft).

Beachten Sie, dass für das Namespacesymbol die deklarierende Syntax möglicherweise einen geschachtelten Namespace deklariert. So wird beispielsweise der deklarierende Syntaxknoten für N1 in "Namespace N1" deklariert. N2 {...}" ist der gesamte NamespaceDeclarationSyntax für N1. N2. Für den globalen Namespace wird die deklarierende Syntax die CompilationUnitSyntax sein.

HasUnsupportedMetadata

Gibt an, dass dieses Symbol Metadaten verwendet, die von der Sprache nicht unterstützt werden können.

Beispiele:

  • Zeigertypen in VB
  • ByRef-Rückgabetyp
  • Erforderliche benutzerdefinierte Modifizierer

Dies unterscheidet sich beispielsweise von Verweisen auf Metadatensymbole, die in Assemblys definiert sind, die nicht referenziert wurden. Symbole, bei denen "true" zurückgegeben wird, können niemals erfolgreich verwendet werden und sollten daher niemals in einem IDE-Feature angezeigt werden.

Dies ist für Metadatensymbole wie folgt festgelegt:

  • Typ – wenn ein Typ nicht unterstützt wird (z. B. ein Zeigertyp)
  • Methode - Parameter oder Rückgabetyp wird nicht unterstützt
  • Feld – Typ wird nicht unterstützt
  • Ereignis – Typ wird nicht unterstützt
  • Eigenschaft – Typ wird nicht unterstützt
  • Parameter – Typ wird nicht unterstützt

IsAbstract

Ruft einen Wert ab, der angibt, ob das Symbol abstrahiert ist.

IsDefinition

Ruft einen Wert ab, der angibt, ob das Symbol die ursprüngliche Definition ist. Gibt "false" zurück, wenn das Symbol aus einem anderen Symbol abgeleitet wird, indem der Typ ersetzt wird, z. B.

IsExtern

Ruft einen Wert ab, der angibt, ob das Symbol extern definiert ist.

IsImplicitlyDeclared

Gibt true zurück, wenn dieses Symbol automatisch vom Compiler erstellt wurde und keine explizite entsprechende Quellcodedeklaration aufweist.

IsOverride

Ruft einen Wert ab, der angibt, ob das Symbol eine Außerkraftsetzung eines Basisklassesymbols ist.

IsSealed

Ruft einen Wert ab, der angibt, ob das Symbol versiegelt ist.

IsStatic

Ruft einen Wert ab, der angibt, ob das Symbol statisch ist.

IsVirtual

Ruft einen Wert ab, der angibt, ob das Symbol virtual ist.

Kind

Ruft den SymbolKind Hinweis ab, welche Art von Symbol es ist.

Language

Ruft die Quellsprache ("C#" oder "Visual Basic") ab.

Locations

Ruft die Speicherorte ab, an denen das Symbol ursprünglich definiert wurde, entweder in Quelle oder Metadaten. Einige Symbole (z. B. Teilklassen) können an mehreren Speicherorten definiert werden.

MetadataName

Ruft den Namen eines Symbols ab, wie es in Metadaten angezeigt wird. Dies entspricht der meisten Zeit der Name-Eigenschaft mit den folgenden Ausnahmen:

  1. Der Metadatenname der generischen Typen enthält das Suffix "'1", "'2" usw., das die Anzahl der Typparameter angibt (es enthält jedoch keine Namen von Typen oder Namespaces).
  2. Der Metadatenname expliziter Schnittstellennamen hat Leerzeichen entfernt, verglichen mit der Name-Eigenschaft.
  3. Die Länge der Namen ist beschränkt, um Metadateneinschränkungen nicht zu überschreiten.
MetadataToken

Ruft das Metadatentoken ab, das diesem Symbol zugeordnet ist, oder 0, wenn das Symbol nicht aus Metadaten geladen wird.

Name

Ruft den Symbolnamen ab. Gibt die leere Zeichenfolge zurück, wenn sie nicht benannt ist.

OriginalDefinition

Ruft die ISymbol ursprüngliche Definition des Symbols ab. Wenn dieses Symbol von einem anderen Symbol abgeleitet wird, ruft dies z. B. das ursprüngliche Symbol ab, da sie in Quell- oder Metadaten definiert wurde.

Methoden

Accept(SymbolVisitor)

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

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

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

Accept<TResult>(SymbolVisitor<TResult>)

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

Equals(ISymbol, SymbolEqualityComparer)

Bestimmt, ob dieses Symbol einer anderen entspricht, gemäß den Regeln der bereitgestellten SymbolEqualityComparer

GetAttributes()

Ruft die Attribute für das Symbol ab. Gibt einen leeren IEnumerable<T> Wert zurück, wenn keine Attribute vorhanden sind.

GetDocumentationCommentId()

Gibt die Dokumentationskommentar-ID für das Symbol oder null zurück, wenn das Symbol keine Dokumentationskommentare unterstützt.

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Ruft den XML-Code (als Text) für den Kommentar ab, der dem Symbol zugeordnet ist.

ToDisplayParts(SymbolDisplayFormat)

Konvertieren Sie ein Symbol in ein Array von Zeichenfolgenteilen, die jeweils eine Art haben. Nützlich für die Farbisierung der Anzeigezeichenfolge.

ToDisplayString(SymbolDisplayFormat)

Konvertiert das Symbol in eine Zeichenfolgendarstellung.

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Konvertieren Sie ein Symbol in ein Array von Zeichenfolgenteilen, die jeweils eine Art haben. Kann an einen bestimmten Speicherort im Quellcode angepasst werden. Nützlich für die Farbisierung der Anzeigezeichenfolge.

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Konvertieren Sie ein Symbol in eine Zeichenfolge, die dem Benutzer angezeigt werden kann. Kann an einen bestimmten Speicherort im Quellcode angepasst werden.

Erweiterungsmethoden

IsMustOverride(ISymbol)

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

IsNotOverridable(ISymbol)

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

IsOverridable(ISymbol)

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

IsOverrides(ISymbol)

Stellt ein Symbol (Namespace, Klasse, Methode, Parameter usw.) dar, das vom Compiler verfügbar gemacht wird.

IsShared(ISymbol)

Bestimmt, ob das Symbol freigegeben ist.

Gilt für: