Condividi tramite


IMethodSymbol Interfaccia

Definizione

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/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
Implementazioni

Commenti

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

Proprietà

Nome Descrizione
Arity

Restituisce l'arità di questo metodo. Arity è il numero di parametri di tipo dichiarati da un metodo. Un metodo non generico ha zero arità.

AssociatedAnonymousDelegate

Se questo metodo è un metodo Lambda (MethodKind = MethodKind.LambdaMethod) ed è associato un delegato anonimo, restituisce questo delegato.

Restituisce Null se il simbolo non è un'espressione lambda o se non dispone di un delegato anonimo associato.

AssociatedExtensionImplementation

Per un metodo/funzione di accesso/operatore in un blocco di estensione, restituisce il metodo di implementazione corrispondente, se presente. Restituisce null in caso contrario.

Si consideri, ad esempio, quanto segue:

static class E
{
    extension(int i)
    {
        public void M() { }
    }
}

Quando viene specificato il simbolo del metodo per E.extension(int i).M(), restituisce il metodo E.M(this int i)di implementazione statico corrispondente.

Quando viene specificata una definizione di membro di estensione generica, restituisce un metodo di implementazione costruito con i parametri di tipo del membro dell'estensione.

AssociatedSymbol

Restituisce un simbolo ,ad esempio proprietà, evento e così via, associato al metodo .

CallingConvention

Enumerazione della convenzione di chiamata del simbolo del metodo.

CanBeReferencedByName

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

(Ereditato da ISymbol)
ConstructedFrom

Restituisce il simbolo del metodo da cui è stato costruito questo metodo. Il simbolo del metodo risultante ha lo stesso tipo contenitore (se presente), ma ha argomenti di tipo uguali ai parametri di tipo (anche se il tipo che lo contiene potrebbe non essere).

ContainingAssembly

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

(Ereditato da ISymbol)
ContainingModule

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

(Ereditato da ISymbol)
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.

(Ereditato da ISymbol)
ContainingSymbol

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

(Ereditato da ISymbol)
ContainingType

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

(Ereditato da ISymbol)
DeclaredAccessibility

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

(Ereditato da ISymbol)
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.

(Ereditato da ISymbol)
ExplicitInterfaceImplementations

Restituisce i metodi di interfaccia implementati in modo esplicito da questo metodo.

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

(Ereditato da ISymbol)
HidesBaseMethodsByName

Restituisce true se questo metodo nasconde i metodi di base in base al nome. Questo non può essere specificato direttamente nel linguaggio C#, ma può essere true per i metodi definiti in altri linguaggi importati dai metadati. Equivalente del flag "hidebyname" nei metadati.

IsAbstract

Ottiene un valore che indica se il simbolo è astratto.

(Ereditato da ISymbol)
IsAsync

Restituisce true se questo metodo è un metodo asincrono

IsCheckedBuiltin

Restituisce un valore che indica se l'operatore predefinito verifica la presenza di overflow integer.

IsConditional

Restituisce un flag che indica se questo simbolo ha almeno un attributo condizionale applicato/ereditato.

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 .

(Ereditato da ISymbol)
IsExtensionMethod

Restituisce true se questo metodo è un metodo di estensione "classico" (usando il this modificatore in C# o ExtensionAttribute in VB).

IsExtern

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

(Ereditato da ISymbol)
IsGenericMethod

Restituisce un valore che indica se questo metodo è generico; ad esempio, contiene parametri di tipo?

IsImplicitlyDeclared

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

(Ereditato da ISymbol)
IsInitOnly

Restituisce true per le funzioni di accesso set 'init' e false in caso contrario.

IsIterator

Restituisce true se questo metodo è un metodo di origine implementato come iteratore (sincronizzazione o asincrono)

IsOverride

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

(Ereditato da ISymbol)
IsPartialDefinition

Restituisce true se si tratta di una definizione di metodo parziale senza corpo. Se è presente un corpo di implementazione, può essere recuperato con PartialImplementationPart.

IsReadOnly

Indica se il metodo è di sola lettura, ad esempio se il parametro ricevitore 'this' è 'ref readonly'. Restituisce true per i metodi e le funzioni di accesso dell'istanza readonly e per i metodi di estensione ridotti con un parametro 'this in'.

IsSealed

Ottiene un valore che indica se il simbolo è sealed.

(Ereditato da ISymbol)
IsStatic

Ottiene un valore che indica se il simbolo è statico.

(Ereditato da ISymbol)
IsVararg

Restituisce un valore che indica se questo metodo usa la convenzione di chiamata DELL'interfaccia della riga di comando VARARG. Viene usato per gli elenchi di argomenti di variabile di tipo C. Questa operazione viene usata raramente nel codice C# e viene rappresentata usando la parola chiave "__arglist" non documentata.

Si noti che i metodi con "params" nell'ultimo parametro sono indicati con la proprietà "IsParams" in ParameterSymbol e non sono rappresentati con questa proprietà.

IsVirtual

Ottiene un valore che indica se il simbolo è virtuale.

(Ereditato da ISymbol)
Kind

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

(Ereditato da ISymbol)
Language

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

(Ereditato da ISymbol)
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.

(Ereditato da ISymbol)
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.
(Ereditato da ISymbol)
MetadataToken

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

(Ereditato da ISymbol)
MethodImplementationFlags

Restituisce i flag di implementazione per il simbolo del metodo specificato.

MethodKind

Ottiene il tipo di metodo. Esistono diversi tipi di elementi nel linguaggio C# rappresentati come metodi. Questa proprietà consente di distinguere tali elementi senza dover decodificare il nome del metodo.

Name

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

(Ereditato da ISymbol)
OriginalDefinition

Ottenere la definizione originale di questo 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.

OverriddenMethod

Se questo metodo esegue l'override di un altro metodo ( perché entrambi disponevano del modificatore di override e c'era correttamente un metodo di cui eseguire l'override), restituisce il metodo sottoposto a override.

Parameters

Ottiene i parametri di questo metodo. Se questo metodo non contiene parametri, restituisce un elenco vuoto.

PartialDefinitionPart

Se si tratta di una parte di implementazione parziale del metodo, restituisce la parte di definizione corrispondente. In caso contrario, null.

PartialImplementationPart

Se si tratta di una dichiarazione di metodo parziale senza un corpo e il metodo viene implementato con un corpo, restituisce tale definizione di implementazione. In caso contrario, null.

ReceiverNullableAnnotation

Se questo metodo può essere applicato a un oggetto , restituisce il valore Nullbility di primo livello dell'oggetto a cui viene applicato.

ReceiverType

Se questo metodo può essere applicato a un oggetto , restituisce il tipo di oggetto a cui viene applicato.

ReducedFrom

Se questo metodo è un metodo di estensione ridotto, restituisce la definizione del metodo di estensione da cui questa operazione è stata ridotta. In caso contrario, restituisce null.

RefCustomModifiers

Modificatori personalizzati associati al modificatore di riferimento o matrice vuota se non sono presenti.

RefKind

Restituisce l'oggetto RefKind del metodo .

ReturnNullableAnnotation

Ottiene il valore Nullbility di primo livello del tipo restituito del metodo.

ReturnsByRef

Restituisce true se il metodo restituisce per riferimento.

ReturnsByRefReadonly

Restituisce true se questo metodo viene restituito da ref readonly.

ReturnsVoid

Restituisce true se questo metodo non ha alcun tipo restituito; ad esempio restituisce "void".

ReturnType

Ottiene il tipo restituito del metodo .

ReturnTypeCustomModifiers

Restituisce l'elenco dei modificatori personalizzati, se presenti, associati al tipo restituito.

TypeArgumentNullableAnnotations

Restituisce il valore Nullbility di primo livello degli argomenti di tipo che sono stati sostituiti per i parametri di tipo. Se non è stato sostituito alcun parametro di tipo specificato, None viene restituito .

TypeArguments

Restituisce gli argomenti di tipo che sono stati sostituiti per i parametri di tipo. Se nulla è stato sostituito per un parametro di tipo specificato, il parametro di tipo stesso viene considerato l'argomento di tipo.

TypeArgumentsNullableAnnotations

Restituisce il valore Nullbility di primo livello degli argomenti di tipo che sono stati sostituiti per i parametri di tipo. Se non è stato sostituito alcun parametro di tipo specificato, NotApplicable viene restituito .

TypeParameters

Ottenere i parametri di tipo in questo metodo. Se il metodo non è generico, restituisce un elenco vuoto.

UnmanagedCallingConventionTypes

Tipi di modificatore considerati parte della convenzione di chiamata di questo metodo, se MethodKind è FunctionPointerSignature e CallingConvention è Unmanaged. Se non si tratta di una firma del puntatore di funzione o la convenzione di chiamata non è gestita, si tratta di una matrice vuota. L'ordine e la duplicazione di questi modificatori riflettono l'ordine e la duplicazione di origine/metadati, a seconda di quale simbolo proviene.

Metodi

Nome Descrizione
Accept(SymbolVisitor)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

(Ereditato da ISymbol)
Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

(Ereditato da ISymbol)
Accept<TResult>(SymbolVisitor<TResult>)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

(Ereditato da ISymbol)
Construct(ImmutableArray<ITypeSymbol>, ImmutableArray<NullableAnnotation>)

Restituisce un metodo costruito in base agli argomenti di tipo e alle annotazioni nullable dell'argomento di tipo.

Construct(ITypeSymbol[])

Restituisce un metodo costruito in base ai relativi argomenti di tipo.

Equals(ISymbol, SymbolEqualityComparer)

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

(Ereditato da ISymbol)
GetAttributes()

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

(Ereditato da ISymbol)
GetDllImportData()

Informazioni di Platform invoke o Null se il metodo non è un P/Invoke.

GetDocumentationCommentId()

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

(Ereditato da ISymbol)
GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

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

(Ereditato da ISymbol)
GetReturnTypeAttributes()

Restituisce l'elenco di attributi personalizzati, se presenti, associati al valore restituito.

GetTypeInferredDuringReduction(ITypeParameterSymbol)

Se questo metodo è un metodo di estensione ridotto, restituisce un tipo dedotto durante il processo di riduzione per il parametro di tipo.

ReduceExtensionMember(ITypeSymbol)

Se si tratta di un metodo di un blocco di estensione che può essere applicato a un ricevitore del tipo specificato, restituisce il simbolo del metodo nell'estensione sostituita per quel tipo di ricevitore. In caso contrario, restituisce null.

ReduceExtensionMethod(ITypeSymbol)

Se si tratta di un metodo di estensione che può essere applicato a un ricevitore del tipo specificato, restituisce un simbolo di metodo di estensione ridotto formato. In caso contrario, restituisce null.

ToDisplayParts(SymbolDisplayFormat)

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

(Ereditato da ISymbol)
ToDisplayString(SymbolDisplayFormat)

Converte il simbolo in una rappresentazione di stringa.

(Ereditato da ISymbol)
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.

(Ereditato da ISymbol)
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.

(Ereditato da ISymbol)

Metodi di estensione

Nome Descrizione
GetConstructedReducedFrom(IMethodSymbol)

Restituisce la forma costruita della proprietà ReducedFrom, inclusi gli argomenti di tipo dedotti durante la riduzione o forniti nel sito di chiamata.

HandledEvents(IMethodSymbol)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

IsMustOverride(ISymbol)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

IsNotOverridable(ISymbol)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

IsOverloads(IMethodSymbol)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

IsOverridable(ISymbol)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

IsOverrides(ISymbol)

Rappresenta un metodo o un simbolo simile al metodo ,incluso il costruttore, il distruttore, l'operatore o la funzione di accesso a proprietà/evento.

IsShared(ISymbol)

Determina se il simbolo è Condiviso.

Si applica a