Condividi tramite


ISymbol Interfaccia

Definizione

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

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)
Derivato
Implementazioni

Commenti

Questa interfaccia è riservata all'implementazione dalle API associate. Ci riservamo il diritto di modificarlo in futuro.

Proprietà

Nome Descrizione
CanBeReferencedByName

Restituisce true se questo simbolo può essere fatto riferimento dal nome nel codice.

ContainingAssembly

Ottiene l'oggetto IAssemblySymbol per l'assembly contenitore. Restituisce Null se il simbolo è condiviso tra più assembly.

ContainingModule

Ottiene l'oggetto IModuleSymbol per il modulo contenitore. Restituisce Null se il simbolo viene condiviso tra più moduli.

ContainingNamespace

Ottiene l'oggetto INamespaceSymbol per lo spazio dei nomi di inclusione più vicino. Restituisce Null se il simbolo non è contenuto in uno spazio dei nomi.

ContainingSymbol

Ottiene l'oggetto per l'oggetto ISymbol contenente immediatamente il simbolo.

ContainingType

Ottiene l'oggetto INamedTypeSymbol per il tipo contenitore. Restituisce Null se il simbolo non è contenuto all'interno di un tipo.

DeclaredAccessibility

Ottiene un Accessibility oggetto che indica l'accessibilità dichiarata per il simbolo. Restituisce NotApplicable se non viene dichiarata alcuna accessibilità.

DeclaringSyntaxReferences

Ottenere i nodi della sintassi in cui questo simbolo è stato dichiarato nell'origine. Alcuni simboli, ad esempio tipi parziali, ad esempio classi, struct e interfacce, possono essere definiti in più posizioni. Questa proprietà deve restituire uno o più nodi della sintassi solo se il simbolo è stato dichiarato nel codice sorgente e non è stato dichiarato in modo implicito (vedere la proprietà IsImplicitlyDeclared).

Si noti che per i membri parziali (metodi, proprietà, eventi), questa proprietà restituisce un solo nodo della sintassi. Per ottenere tutti i nodi della sintassi per un membro parziale, usare le PartialDefinitionPart proprietà e PartialImplementationPart in IMethodSymbol, IPropertySymbolo IEventSymbol.

Si noti che per il simbolo dello spazio dei nomi, la sintassi dichiarante potrebbe dichiarare uno spazio dei nomi annidato. Ad esempio, il nodo della sintassi dichiarante per N1 in "spazio dei nomi N1. N2 {...}" è l'intero namespaceDeclarationSyntax per N1. N2. Per lo spazio dei nomi globale, la sintassi dichiarativa sarà CompilationUnitSyntax.

HasUnsupportedMetadata

Indica che questo simbolo utilizza metadati che non possono essere supportati dalla lingua.

Gli esempi includono:

  • Tipi di puntatore in VB
  • Tipo restituito ByRef
  • Modificatori personalizzati obbligatori

Ciò si distingue, ad esempio, dai riferimenti ai simboli di metadati definiti negli assembly a cui non viene fatto riferimento. I simboli in cui restituisce true non possono mai essere usati correttamente e pertanto non dovrebbero mai essere visualizzati in alcuna funzionalità dell'IDE.

Questa opzione è impostata per i simboli di metadati, come indicato di seguito:

  • Tipo: se un tipo non è supportato (ad esempio, un tipo di puntatore)
  • Metodo : il parametro o il tipo restituito non è supportato
  • Campo - Tipo non supportato
  • Evento : il tipo non è supportato
  • Proprietà : il tipo non è supportato
  • Parametro : il tipo non è supportato

IsAbstract

Ottiene un valore che indica se il simbolo è astratto.

IsDefinition

Ottiene un valore che indica se il simbolo è la definizione originale. Restituisce false se il simbolo è derivato da un altro simbolo, in base alla sostituzione del tipo per istanza di .

IsExtern

Ottiene un valore che indica se il simbolo è definito esternamente.

IsImplicitlyDeclared

Restituisce true se questo simbolo è stato creato automaticamente dal compilatore e non dispone di una dichiarazione di codice sorgente corrispondente esplicita.

IsOverride

Ottiene un valore che indica se il simbolo è un override di un simbolo di classe di base.

IsSealed

Ottiene un valore che indica se il simbolo è sealed.

IsStatic

Ottiene un valore che indica se il simbolo è statico.

IsVirtual

Ottiene un valore che indica se il simbolo è virtuale.

Kind

Ottiene l'oggetto che indica il SymbolKind tipo di simbolo.

Language

Ottiene il linguaggio di origine ("C#" o "Visual Basic").

Locations

Ottiene i percorsi in cui il simbolo è stato originariamente definito, nell'origine o nei metadati. Alcuni simboli, ad esempio tipi parziali, ad esempio classi, struct e interfacce, possono essere definiti in più posizioni. Si noti che per i membri parziali (ad esempio metodi, proprietà ed eventi), questa proprietà restituisce una sola posizione. Per ottenere tutte le posizioni per un membro parziale, usare le PartialDefinitionPart proprietà e PartialImplementationPart in IMethodSymbol, IPropertySymbolo IEventSymbol.

MetadataName

Ottiene il nome di un simbolo visualizzato nei metadati. Nella maggior parte dei casi, si tratta della stessa proprietà Name, con le eccezioni seguenti:

  1. Il nome dei metadati dei tipi generici include il suffisso "'1", "'2" e così via che indica il numero di parametri di tipo (non include, tuttavia, nomi di tipi o spazi dei nomi contenenti).
  2. Il nome dei metadati dei nomi di interfaccia espliciti ha spazi rimossi, rispetto alla proprietà name.
  3. La lunghezza dei nomi è limitata a non superare le restrizioni dei metadati.
MetadataToken

Ottiene il token di metadati associato a questo simbolo oppure 0 se il simbolo non viene caricato dai metadati.

Name

Ottiene il nome del simbolo. Restituisce la stringa vuota se senza nome.

OriginalDefinition

Ottiene l'oggetto ISymbol per la definizione originale del simbolo. Se questo simbolo è derivato da un altro simbolo, per sostituzione del tipo, ad esempio, ottiene il simbolo originale, come è stato definito nell'origine o nei metadati.

Metodi

Nome Descrizione
Accept(SymbolVisitor)

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

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

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

Accept<TResult>(SymbolVisitor<TResult>)

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

Equals(ISymbol, SymbolEqualityComparer)

Determina se questo simbolo è uguale a un altro, in base alle regole dell'oggetto specificato SymbolEqualityComparer

GetAttributes()

Ottiene gli attributi per il simbolo. Restituisce un valore vuoto ImmutableArray<T> se non sono presenti attributi.

GetDocumentationCommentId()

Restituisce l'ID commento della documentazione per il simbolo oppure null se il simbolo non supporta i commenti della documentazione.

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Ottiene il codice XML (come testo) per il commento associato al simbolo.

ToDisplayParts(SymbolDisplayFormat)

Convertire un simbolo in una matrice di parti stringa, ognuna delle quali ha un tipo. Utile per colorare la stringa di visualizzazione.

ToDisplayString(SymbolDisplayFormat)

Converte il simbolo in una rappresentazione di stringa.

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Convertire un simbolo in una matrice di parti stringa, ognuna delle quali ha un tipo. Può essere personalizzato in base a una posizione specifica nel codice sorgente. Utile per colorare la stringa di visualizzazione.

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Convertire un simbolo in una stringa che può essere visualizzata all'utente. Può essere personalizzato in base a una posizione specifica nel codice sorgente.

Metodi di estensione

Nome Descrizione
IsMustOverride(ISymbol)

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

IsNotOverridable(ISymbol)

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

IsOverridable(ISymbol)

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

IsOverrides(ISymbol)

Rappresenta un simbolo (spazio dei nomi, classe, metodo, parametro e così via) esposto dal compilatore.

IsShared(ISymbol)

Determina se il simbolo è Condiviso.

Si applica a