Compartilhar via


ISymbol Interface

Definição

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

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)
Derivado
Implementações

Comentários

Essa interface é reservada para implementação por suas APIs associadas. Reservamos o direito de mudá-lo no futuro.

Propriedades

CanBeReferencedByName

Retornará true se esse símbolo puder ser referenciado por seu nome no código.

ContainingAssembly

Obtém o IAssemblySymbol assembly que contém. Retornará nulo se o símbolo for compartilhado em vários assemblies.

ContainingModule

Obtém o IModuleSymbol módulo que contém. Retornará nulo se o símbolo for compartilhado em vários módulos.

ContainingNamespace

Obtém o INamespaceSymbol namespace de cercamento mais próximo. Retornará nulo se o símbolo não estiver contido em um namespace.

ContainingSymbol

Obtém o ISymbol símbolo que contém imediatamente.

ContainingType

Obtém o INamedTypeSymbol tipo que contém. Retornará nulo se o símbolo não estiver contido em um tipo.

DeclaredAccessibility

Obtém uma Accessibility indicação da acessibilidade declarada para o símbolo. Retornará NotApplicable se nenhuma acessibilidade for declarada.

DeclaringSyntaxReferences

Obtenha os nós de sintaxe em que esse símbolo foi declarado na origem. Alguns símbolos (por exemplo, classes parciais) podem ser definidos em mais de um local. Essa propriedade deve retornar um ou mais nós de sintaxe somente se o símbolo foi declarado no código-fonte e também não foi declarado implicitamente (consulte a propriedade IsImplicitlyDeclared).

Observe que, para o símbolo de namespace, a sintaxe de declaração pode estar declarando um namespace aninhado. Por exemplo, o nó de sintaxe de declaração para N1 no "namespace N1. N2 {...}" é toda a NamespaceDeclarationSyntax para N1. N2. Para o namespace global, a sintaxe de declaração será a CompilationUnitSyntax.

HasUnsupportedMetadata

Indica que esse símbolo usa metadados que não podem ser suportados pelo idioma.

Os exemplos incluem:

  • Tipos de ponteiro no VB
  • Tipo de retorno ByRef
  • Modificadores personalizados necessários

Isso é diferenciado de, por exemplo, referências a símbolos de metadados definidos em assemblies que não foram referenciados. Símbolos em que isso retorna true nunca podem ser usados com êxito e, portanto, nunca devem aparecer em nenhum recurso de IDE.

Isso é definido para símbolos de metadados, da seguinte maneira:

  • Tipo - se um tipo não for compatível (por exemplo, um tipo de ponteiro)
  • Método – parâmetro ou tipo de retorno não tem suporte
  • Campo – o tipo não tem suporte
  • Evento – o tipo não tem suporte
  • Propriedade – o tipo não tem suporte
  • Parâmetro – o tipo não tem suporte

IsAbstract

Obtém um valor que indica se o símbolo é abstrato.

IsDefinition

Obtém um valor que indica se o símbolo é a definição original. Retornará false se o símbolo for derivado de outro símbolo, por substituição de tipo, por exemplo.

IsExtern

Obtém um valor que indica se o símbolo é definido externamente.

IsImplicitlyDeclared

Retorna true se esse símbolo foi criado automaticamente pelo compilador e não tem uma declaração de código-fonte correspondente explícita.

IsOverride

Obtém um valor que indica se o símbolo é uma substituição de um símbolo de classe base.

IsSealed

Obtém um valor que indica se o símbolo está lacrado.

IsStatic

Obtém um valor que indica se o símbolo é estático.

IsVirtual

Obtém um valor que indica se o símbolo é virtual.

Kind

Obtém o SymbolKind que indica que tipo de símbolo ele é.

Language

Obtém a linguagem de origem ("C#" ou "Visual Basic").

Locations

Obtém os locais em que o símbolo foi originalmente definido, seja na origem ou nos metadados. Alguns símbolos (por exemplo, classes parciais) podem ser definidos em mais de um local.

MetadataName

Obtém o nome de um símbolo como ele aparece em metadados. Na maioria das vezes, isso é o mesmo que a propriedade Name, com as seguintes exceções:

  1. O nome dos metadados de tipos genéricos inclui o sufixo "'1", "'2" etc. que indica o número de parâmetros de tipo (ele não inclui, no entanto, nomes de tipos ou namespaces contendo).
  2. O nome dos metadados de nomes de interface explícitos tem espaços removidos, em comparação com a propriedade name.
  3. O comprimento dos nomes é limitado para não exceder as restrições de metadados.
MetadataToken

Obtém o token de metadados associado a esse símbolo ou 0 se o símbolo não for carregado de metadados.

Name

Obtém o nome do símbolo. Retorna a cadeia de caracteres vazia se não for nomeada.

OriginalDefinition

Obtém a ISymbol definição original do símbolo. Se esse símbolo for derivado de outro símbolo, por substituição de tipo, por exemplo, ele obterá o símbolo original, pois ele foi definido na origem ou nos metadados.

Métodos

Accept(SymbolVisitor)

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

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

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

Accept<TResult>(SymbolVisitor<TResult>)

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

Equals(ISymbol, SymbolEqualityComparer)

Determina se esse símbolo é igual a outro, de acordo com as regras do fornecido SymbolEqualityComparer

GetAttributes()

Obtém os atributos do símbolo. Retorna um vazio IEnumerable<T> se não houver atributos.

GetDocumentationCommentId()

Retorna a ID de Comentário da Documentação do símbolo ou nula se o símbolo não oferecer suporte a comentários de documentação.

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Obtém o XML (como texto) para o comentário associado ao símbolo.

ToDisplayParts(SymbolDisplayFormat)

Converta um símbolo em uma matriz de partes de cadeia de caracteres, cada uma com um tipo. Útil para colorir a cadeia de caracteres de exibição.

ToDisplayString(SymbolDisplayFormat)

Converte o símbolo em uma representação de cadeia de caracteres.

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Converta um símbolo em uma matriz de partes de cadeia de caracteres, cada uma com um tipo. Pode ser adaptado para um local específico no código-fonte. Útil para colorir a cadeia de caracteres de exibição.

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Converta um símbolo em uma cadeia de caracteres que pode ser exibida para o usuário. Pode ser adaptado para um local específico no código-fonte.

Métodos de Extensão

IsMustOverride(ISymbol)

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

IsNotOverridable(ISymbol)

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

IsOverridable(ISymbol)

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

IsOverrides(ISymbol)

Representa um símbolo (namespace, classe, método, parâmetro etc.) exposto pelo compilador.

IsShared(ISymbol)

Determina se o símbolo é Compartilhado.

Aplica-se a