ISymbol Interface

Définition

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

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)
Dérivé
Implémente

Remarques

Cette interface est réservée à l’implémentation par ses API associées. Nous nous réservons le droit de le changer à l’avenir.

Propriétés

CanBeReferencedByName

Retourne true si ce symbole peut être référencé par son nom dans le code.

ContainingAssembly

Obtient l’assembly IAssemblySymbol conteneur. Retourne null si le symbole est partagé entre plusieurs assemblys.

ContainingModule

Obtient le IModuleSymbol module conteneur. Retourne null si le symbole est partagé entre plusieurs modules.

ContainingNamespace

Obtient l’espace de noms englobant le INamespaceSymbol plus proche. Retourne null si le symbole n’est pas contenu dans un espace de noms.

ContainingSymbol

Obtient le ISymbol symbole qui contient immédiatement.

ContainingType

Obtient le INamedTypeSymbol type conteneur. Retourne null si le symbole n’est pas contenu dans un type.

DeclaredAccessibility

Obtient une Accessibility indication de l’accessibilité déclarée pour le symbole. Retourne NotApplicable si aucune accessibilité n’est déclarée.

DeclaringSyntaxReferences

Obtenez le ou les nœuds de syntaxe dans lesquels ce symbole a été déclaré dans la source. Certains symboles (par exemple, des classes partielles) peuvent être définis dans plusieurs emplacements. Cette propriété doit retourner un ou plusieurs nœuds de syntaxe uniquement si le symbole a été déclaré dans le code source et n’a pas été déclaré implicitement (voir la propriété IsImplicitlyDe declare).

Notez que pour le symbole d’espace de noms, la syntaxe déclarante peut déclarer un espace de noms imbriqué. Par exemple, le nœud de syntaxe déclarant pour N1 dans « espace de noms N1 ». N2 {...} » est l’intégralité de NamespaceDeclarationSyntax pour N1. N2. Pour l’espace de noms global, la syntaxe de déclaration sera compilationUnitSyntax.

HasUnsupportedMetadata

Indique que ce symbole utilise des métadonnées qui ne peuvent pas être prises en charge par la langue.

Voici quelques exemples :

  • Types de pointeur dans VB
  • Type de retour ByRef
  • Modificateurs personnalisés requis

Cela se distingue, par exemple, des références aux symboles de métadonnées définis dans les assemblys qui n’ont pas été référencés. Les symboles dans lesquels cette valeur retourne true ne peuvent jamais être utilisées correctement, et ne doivent donc jamais apparaître dans une fonctionnalité IDE.

Cette valeur est définie pour les symboles de métadonnées, comme suit :

  • Type : si un type n’est pas pris en charge (par exemple, un type de pointeur)
  • Méthode : le paramètre ou le type de retour n’est pas pris en charge
  • Champ : le type n’est pas pris en charge
  • Événement : le type n’est pas pris en charge
  • Propriété : le type n’est pas pris en charge
  • Paramètre : le type n’est pas pris en charge
IsAbstract

Obtient une valeur indiquant si le symbole est abstrait.

IsDefinition

Obtient une valeur indiquant si le symbole est la définition d’origine. Retourne false si le symbole est dérivé d’un autre symbole, par substitution de type par instance.

IsExtern

Obtient une valeur indiquant si le symbole est défini en externe.

IsImplicitlyDeclared

Retourne true si ce symbole a été créé automatiquement par le compilateur et n’a pas de déclaration de code source correspondante explicite.

IsOverride

Obtient une valeur indiquant si le symbole est un remplacement d’un symbole de classe de base.

IsSealed

Obtient une valeur indiquant si le symbole est scellé.

IsStatic

Obtient une valeur indiquant si le symbole est statique.

IsVirtual

Obtient une valeur indiquant si le symbole est virtuel.

Kind

Obtient l’indication SymbolKind du type de symbole qu’il est.

Language

Obtient le langage source (« C# » ou « Visual Basic »).

Locations

Obtient les emplacements où le symbole a été défini à l’origine, dans la source ou les métadonnées. Certains symboles (par exemple, des classes partielles) peuvent être définis dans plusieurs emplacements.

MetadataName

Obtient le nom d’un symbole tel qu’il apparaît dans les métadonnées. La plupart du temps, il s’agit de la même propriété Name, avec les exceptions suivantes :

  1. Le nom des métadonnées des types génériques inclut le suffixe « 1 », « 2 », etc. qui indique le nombre de paramètres de type (il n’inclut pas, toutefois, les noms de types ou d’espaces de noms contenant).
  2. Le nom des métadonnées des noms d’interface explicites a des espaces supprimés par rapport à la propriété name.
  3. La longueur des noms est limitée à ne pas dépasser les restrictions de métadonnées.
MetadataToken

Obtient le jeton de métadonnées associé à ce symbole, ou 0 si le symbole n’est pas chargé à partir des métadonnées.

Name

Obtient le nom du symbole. Retourne la chaîne vide si elle n’est pas nommée.

OriginalDefinition

Obtient la ISymbol définition d’origine du symbole. Si ce symbole est dérivé d’un autre symbole, par substitution de type par exemple, il obtient le symbole d’origine, tel qu’il a été défini dans la source ou les métadonnées.

Méthodes

Accept(SymbolVisitor)

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

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

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

Accept<TResult>(SymbolVisitor<TResult>)

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

Equals(ISymbol, SymbolEqualityComparer)

Détermine si ce symbole est égal à un autre, conformément aux règles du symbole fourni SymbolEqualityComparer

GetAttributes()

Obtient les attributs du symbole. Retourne une valeur vide IEnumerable<T> s’il n’y a pas d’attributs.

GetDocumentationCommentId()

Retourne l’ID de commentaire de documentation du symbole ou null si le symbole ne prend pas en charge les commentaires de documentation.

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Obtient le code XML (en tant que texte) du commentaire associé au symbole.

ToDisplayParts(SymbolDisplayFormat)

Convertissez un symbole en tableau de parties de chaîne, chacun ayant un type. Utile pour coloriser la chaîne d’affichage.

ToDisplayString(SymbolDisplayFormat)

Convertit le symbole en représentation sous forme de chaîne.

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Convertissez un symbole en tableau de parties de chaîne, chacun ayant un type. Peut être adapté à un emplacement spécifique dans le code source. Utile pour coloriser la chaîne d’affichage.

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Convertissez un symbole en chaîne qui peut être affichée pour l’utilisateur. Peut être adapté à un emplacement spécifique dans le code source.

Méthodes d’extension

IsMustOverride(ISymbol)

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

IsNotOverridable(ISymbol)

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

IsOverridable(ISymbol)

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

IsOverrides(ISymbol)

Représente un symbole (espace de noms, classe, méthode, paramètre, etc.) exposé par le compilateur.

IsShared(ISymbol)

Détermine si le symbole est partagé.

S’applique à