Compartir a través de


ISymbol Interfaz

Definición

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el 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
Implementaciones

Comentarios

Esta interfaz está reservada para la implementación por sus API asociadas. Nos reservamos el derecho de cambiarlo en el futuro.

Propiedades

Nombre Description
CanBeReferencedByName

Devuelve true si se puede hacer referencia a este símbolo por su nombre en el código.

ContainingAssembly

Obtiene para IAssemblySymbol el ensamblado contenedor. Devuelve null si el símbolo se comparte entre varios ensamblados.

ContainingModule

Obtiene para IModuleSymbol el módulo contenedor. Devuelve null si el símbolo se comparte entre varios módulos.

ContainingNamespace

Obtiene para INamespaceSymbol el espacio de nombres más cercano. Devuelve null si el símbolo no está contenido en un espacio de nombres.

ContainingSymbol

Obtiene para ISymbol el símbolo que contiene inmediatamente.

ContainingType

Obtiene para INamedTypeSymbol el tipo contenedor. Devuelve null si el símbolo no está contenido dentro de un tipo.

DeclaredAccessibility

Obtiene un que Accessibility indica la accesibilidad declarada para el símbolo. Devuelve NotApplicable si no se declara ninguna accesibilidad.

DeclaringSyntaxReferences

Obtenga los nodos de sintaxis donde se declaró este símbolo en el origen. Algunos símbolos (por ejemplo, tipos parciales, como clases, estructuras e interfaces) se pueden definir en más de una ubicación. Esta propiedad solo debe devolver uno o más nodos de sintaxis si el símbolo se declaró en el código fuente y tampoco se declaró implícitamente (vea la propiedad IsImplicitlyDeclared).

Tenga en cuenta que para los miembros parciales (métodos, propiedades, eventos), esta propiedad devuelve solo un nodo de sintaxis. Para obtener todos los nodos de sintaxis de un miembro parcial, use las PartialDefinitionPart propiedades y PartialImplementationPart en IMethodSymbol, IPropertySymbolo IEventSymbol.

Tenga en cuenta que para el símbolo del espacio de nombres, la sintaxis declarante podría declarar un espacio de nombres anidado. Por ejemplo, el nodo de sintaxis declarante para N1 en "espacio de nombres N1. N2 {...}" es el espacio de nombres completoDeclarationSyntax para N1. N2. Para el espacio de nombres global, la sintaxis declarante será CompilationUnitSyntax.

HasUnsupportedMetadata

Indica que este símbolo usa metadatos que no pueden ser compatibles con el idioma.

Algunos ejemplos son:

  • Tipos de puntero en VB
  • Tipo de valor devuelto ByRef
  • Modificadores personalizados necesarios

Esto se distingue de, por ejemplo, referencias a símbolos de metadatos definidos en ensamblados a los que no se hacía referencia. Los símbolos en los que devuelve true nunca se pueden usar correctamente y, por tanto, nunca deben aparecer en ninguna característica del IDE.

Esto se establece para símbolos de metadatos, como se indica a continuación:

  • Tipo: si un tipo no es compatible (por ejemplo, un tipo de puntero)
  • Método: el parámetro o el tipo de valor devuelto no son compatibles
  • Campo: el tipo no es compatible
  • Evento: el tipo no es compatible
  • Propiedad: el tipo no es compatible
  • Parámetro: el tipo no es compatible

IsAbstract

Obtiene un valor que indica si el símbolo es abstracto.

IsDefinition

Obtiene un valor que indica si el símbolo es la definición original. Devuelve false si el símbolo se deriva de otro símbolo, por sustitución de tipos por ejemplo.

IsExtern

Obtiene un valor que indica si el símbolo se define externamente.

IsImplicitlyDeclared

Devuelve true si el compilador creó automáticamente este símbolo y no tiene una declaración de código fuente correspondiente explícita.

IsOverride

Obtiene un valor que indica si el símbolo es una invalidación de un símbolo de clase base.

IsSealed

Obtiene un valor que indica si el símbolo está sellado.

IsStatic

Obtiene un valor que indica si el símbolo es estático.

IsVirtual

Obtiene un valor que indica si el símbolo es virtual.

Kind

Obtiene el que SymbolKind indica qué tipo de símbolo es.

Language

Obtiene el lenguaje de origen ("C#" o "Visual Basic").

Locations

Obtiene las ubicaciones donde se definió originalmente el símbolo, ya sea en origen o metadatos. Algunos símbolos (por ejemplo, tipos parciales, como clases, estructuras e interfaces) se pueden definir en más de una ubicación. Tenga en cuenta que para los miembros parciales (como métodos, propiedades y eventos), esta propiedad devuelve solo una ubicación. Para obtener todas las ubicaciones de un miembro parcial, use las PartialDefinitionPart propiedades y PartialImplementationPart en IMethodSymbol, IPropertySymbolo IEventSymbol.

MetadataName

Obtiene el nombre de un símbolo tal como aparece en los metadatos. La mayoría de las veces, esto es lo mismo que la propiedad Name, con las siguientes excepciones:

  1. El nombre de metadatos de tipos genéricos incluye el sufijo "'1", "'2", etc. que indica el número de parámetros de tipo (no incluye, sin embargo, nombres de tipos o espacios de nombres que contienen).
  2. El nombre de metadatos de los nombres de interfaz explícitos ha quitado espacios, en comparación con la propiedad name.
  3. La longitud de los nombres se limita a no superar las restricciones de metadatos.
MetadataToken

Obtiene el token de metadatos asociado a este símbolo o 0 si el símbolo no se carga desde metadatos.

Name

Obtiene el nombre del símbolo. Devuelve la cadena vacía si no tiene nombre.

OriginalDefinition

Obtiene para ISymbol la definición original del símbolo. Si este símbolo se deriva de otro símbolo, por sustitución de tipos por ejemplo, obtiene el símbolo original, tal como se definió en el origen o los metadatos.

Métodos

Nombre Description
Accept(SymbolVisitor)

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

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

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

Accept<TResult>(SymbolVisitor<TResult>)

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

Equals(ISymbol, SymbolEqualityComparer)

Determina si este símbolo es igual a otro, según las reglas del proporcionado. SymbolEqualityComparer

GetAttributes()

Obtiene los atributos del símbolo. Devuelve un valor vacío ImmutableArray<T> si no hay ningún atributo.

GetDocumentationCommentId()

Devuelve el id. de comentario de documentación del símbolo o null si el símbolo no admite comentarios de documentación.

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Obtiene el XML (como texto) del comentario asociado al símbolo.

ToDisplayParts(SymbolDisplayFormat)

Convierta un símbolo en una matriz de elementos de cadena, cada uno de los cuales tiene un tipo. Resulta útil para colorear la cadena de presentación.

ToDisplayString(SymbolDisplayFormat)

Convierte el símbolo en una representación de cadena.

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Convierta un símbolo en una matriz de elementos de cadena, cada uno de los cuales tiene un tipo. Puede adaptarse a una ubicación específica en el código fuente. Resulta útil para colorear la cadena de presentación.

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Convierta un símbolo en una cadena que se pueda mostrar al usuario. Puede adaptarse a una ubicación específica en el código fuente.

Métodos de extensión

Nombre Description
IsMustOverride(ISymbol)

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

IsNotOverridable(ISymbol)

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

IsOverridable(ISymbol)

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

IsOverrides(ISymbol)

Representa un símbolo (espacio de nombres, clase, método, parámetro, etc.) expuesto por el compilador.

IsShared(ISymbol)

Determina si el símbolo es Compartido.

Se aplica a