Partilhar via


IMethodSymbol Interface

Definição

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

public interface class IMethodSymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>, Microsoft::CodeAnalysis::ISymbol
public interface IMethodSymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>, Microsoft.CodeAnalysis.ISymbol
type IMethodSymbol = interface
    interface ISymbol
    interface IEquatable<ISymbol>
Public Interface IMethodSymbol
Implements IEquatable(Of ISymbol), ISymbol
Implementações

Comentários

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

Propriedades

Arity

Retorna a aridade desse método ou o número de parâmetros de tipo necessários. Um método não genérico tem aridade zero.

AssociatedAnonymousDelegate

Se esse método for um método Lambda (MethodKind = MethodKind.LambdaMethod) e houver um delegado anônimo associado a ele, retornará esse delegado.

Retorna nulo se o símbolo não for um lambda ou se ele não tiver um delegado anônimo associado a ele.

AssociatedSymbol

Retorna um símbolo (por exemplo, propriedade, evento etc.) associado ao método.

CallingConvention

A enumeração da convenção de chamada do símbolo do método.

CanBeReferencedByName

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

(Herdado de ISymbol)
ConstructedFrom

Retorna o símbolo do método do qual esse método foi construído. O símbolo do método resultante tem o mesmo tipo (se houver), mas tem argumentos de tipo que são os mesmos que os parâmetros de tipo (embora seu tipo de contenção não possa).

ContainingAssembly

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

(Herdado de ISymbol)
ContainingModule

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

(Herdado de ISymbol)
ContainingNamespace

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

(Herdado de ISymbol)
ContainingSymbol

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

(Herdado de ISymbol)
ContainingType

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

(Herdado de ISymbol)
DeclaredAccessibility

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

(Herdado de ISymbol)
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.

(Herdado de ISymbol)
ExplicitInterfaceImplementations

Retorna métodos de interface explicitamente implementados por esse método.

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 tiver suporte (por exemplo, um tipo de ponteiro)
  • Método – o parâmetro ou o 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

(Herdado de ISymbol)
HidesBaseMethodsByName

Retornará true se esse método ocultar métodos base por nome. Isso não pode ser especificado diretamente na linguagem C#, mas pode ser verdadeiro para métodos definidos em outros idiomas importados de metadados. O equivalente ao sinalizador "hidebyname" nos metadados.

IsAbstract

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

(Herdado de ISymbol)
IsAsync

Retorna true se este método for um método assíncrono

IsCheckedBuiltin

Retorna se esse operador interno verifica se há estouro inteiro.

IsConditional

Retorna um sinalizador que indica se esse símbolo tem pelo menos um atributo condicional aplicado/herdado.

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 instância.

(Herdado de ISymbol)
IsExtensionMethod

Retorna true se esse método for um método de extensão.

IsExtern

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

(Herdado de ISymbol)
IsGenericMethod

Retorna se esse método é genérico; Ou seja, ele tem algum parâmetro de tipo?

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.

(Herdado de ISymbol)
IsInitOnly

Retorna true para acessadores de conjunto 'init' e false caso contrário.

IsOverride

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

(Herdado de ISymbol)
IsPartialDefinition

Retornar true se essa for uma definição de método parcial sem um corpo. Se houver um corpo em implementação, ele poderá ser recuperado com PartialImplementationPart.

IsReadOnly

Indica se o método é readonly, ou seja, se o parâmetro do receptor 'this' é 'ref readonly'. Retorna true para métodos e acessadores de instância readonly e para métodos de extensão reduzidos com um parâmetro "this in".

IsSealed

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

(Herdado de ISymbol)
IsStatic

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

(Herdado de ISymbol)
IsVararg

Retorna se esse método está usando a convenção de chamada VARARG da CLI. Isso é usado para listas de argumentos de variáveis no estilo C. Isso é usado extremamente raramente no código C# e é representado usando a palavra-chave "__arglist" não documentada.

Observe que os métodos com "params" no último parâmetro são indicados com a propriedade "IsParams" em ParameterSymbol e não são representados com essa propriedade.

IsVirtual

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

(Herdado de ISymbol)
Kind

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

(Herdado de ISymbol)
Language

Obtém o idioma de origem ("C#" ou "Visual Basic").

(Herdado de ISymbol)
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.

(Herdado de ISymbol)
MetadataName

Obtém o nome de um símbolo como ele aparece nos 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.
(Herdado de ISymbol)
MetadataToken

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

(Herdado de ISymbol)
MethodImplementationFlags

Retorna os sinalizadores de implementação para o símbolo de método fornecido.

MethodKind

Obtém o tipo de método que é esse. Há vários tipos diferentes de coisas na linguagem C# que são representadas como métodos. Essa propriedade permite distinguir essas coisas sem precisar decodificar o nome do método.

Name

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

(Herdado de ISymbol)
OriginalDefinition

Obtenha a definição original desse símbolo. Se esse símbolo for derivado de outro símbolo por substituição de tipo (digamos), ele obterá o símbolo original, pois ele foi definido na origem ou nos metadados.

OverriddenMethod

Se esse método substituir outro método (porque ambos tinham o modificador de substituição e havia corretamente um método para substituir), retorna o método substituído.

Parameters

Obtém os parâmetros deste método. Se esse método não tiver parâmetros, retornará uma lista vazia.

PartialDefinitionPart

Se essa for uma parte de implementação de método parcial, retornará a parte de definição correspondente. Caso contrário, nulo.

PartialImplementationPart

Se essa for uma declaração de método parcial sem um corpo e o método for implementado com um corpo, retornará essa definição. Caso contrário, nulo.

ReceiverNullableAnnotation

Se esse método puder ser aplicado a um objeto, retornará a nulidade de nível superior do objeto ao qual ele é aplicado.

ReceiverType

Se esse método puder ser aplicado a um objeto, retornará o tipo de objeto ao qual ele é aplicado.

ReducedFrom

Se esse método for um método de extensão reduzido, retornará a definição do método de extensão do qual isso foi reduzido. Caso contrário, retornará nulo.

RefCustomModifiers

Modificadores personalizados associados ao modificador de ref ou a uma matriz vazia se não houver nenhum.

RefKind

Retorna o RefKind do método.

ReturnNullableAnnotation

Obtém a nulidade de nível superior do tipo de retorno do método.

ReturnsByRef

Retornará true se esse método retornar por referência.

ReturnsByRefReadonly

Retornará true se esse método retornar por ref readonly.

ReturnsVoid

Retornará true se este método não tiver nenhum tipo de retorno; Ou seja, retorna "void".

ReturnType

Obtém o tipo retornado do método.

ReturnTypeCustomModifiers

Retorna a lista de modificadores personalizados, se houver, associados ao tipo de retorno.

TypeArgumentNullableAnnotations

Retorna a nulidade de nível superior dos argumentos de tipo que foram substituídos pelos parâmetros de tipo. Se nada tiver sido substituído por um determinado parâmetro de tipo, será None retornado.

TypeArguments

Retorna os argumentos de tipo que foram substituídos pelos parâmetros de tipo. Se nada tiver sido substituído por um determinado parâmetro de tipo, o parâmetro de tipo em si será considerado o argumento de tipo.

TypeArgumentsNullableAnnotations

Retorna a nulidade de nível superior dos argumentos de tipo que foram substituídos pelos parâmetros de tipo. Se nada tiver sido substituído por um determinado parâmetro de tipo, será NotApplicable retornado.

TypeParameters

Obtenha os parâmetros de tipo neste método. Se o método não tiver genérico, retornará uma lista vazia.

UnmanagedCallingConventionTypes

Tipos de modificador que são considerados parte da convenção de chamada desse método, se o MethodKind é FunctionPointerSignature e o CallingConvention é Unmanaged. Se essa não for uma assinatura de ponteiro de função ou a convenção de chamada não for gerenciada, essa será uma matriz vazia. A ordem e a duplicação desses modificadores refletem a ordem de origem/metadados e a duplicação, o que quer que esse símbolo veio.

Métodos

Accept(SymbolVisitor)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

(Herdado de ISymbol)
Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

(Herdado de ISymbol)
Accept<TResult>(SymbolVisitor<TResult>)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

(Herdado de ISymbol)
Construct(ImmutableArray<ITypeSymbol>, ImmutableArray<NullableAnnotation>)

Retorna um método construído, considerando seus argumentos de tipo e anotações anuláveis de argumento de tipo.

Construct(ITypeSymbol[])

Retorna um método construído considerando seus argumentos de tipo.

Equals(ISymbol, SymbolEqualityComparer)

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

(Herdado de ISymbol)
GetAttributes()

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

(Herdado de ISymbol)
GetDllImportData()

Informações de invocação de plataforma ou nulas se o método não for um P/Invoke.

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.

(Herdado de ISymbol)
GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

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

(Herdado de ISymbol)
GetReturnTypeAttributes()

Retorna a lista de atributos personalizados, se houver, associados ao valor retornado.

GetTypeInferredDuringReduction(ITypeParameterSymbol)

Se esse método for um método de extensão reduzido, retornará um tipo inferido durante o processo de redução para o parâmetro de tipo.

ReduceExtensionMethod(ITypeSymbol)

Se esse for um método de extensão que pode ser aplicado a um receptor do tipo fornecido, retornará um símbolo de método de extensão reduzido, portanto formado. Caso contrário, retornará nulo.

ToDisplayParts(SymbolDisplayFormat)

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

(Herdado de ISymbol)
ToDisplayString(SymbolDisplayFormat)

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

(Herdado de ISymbol)
ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Converta um símbolo em uma matriz de partes de cadeia de caracteres, cada uma delas 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.

(Herdado de ISymbol)
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.

(Herdado de ISymbol)

Métodos de Extensão

GetConstructedReducedFrom(IMethodSymbol)

Retorna a forma construída da propriedade ReducedFrom, incluindo os argumentos de tipo que foram inferidos durante a redução ou fornecidos no site de chamada.

HandledEvents(IMethodSymbol)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

IsMustOverride(ISymbol)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

IsNotOverridable(ISymbol)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

IsOverloads(IMethodSymbol)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

IsOverridable(ISymbol)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

IsOverrides(ISymbol)

Representa um método ou símbolo semelhante a um método (incluindo construtor, destruidor, operador ou acessador de propriedade/evento).

IsShared(ISymbol)

Determina se o símbolo é Compartilhado.

Aplica-se a