IMethodSymbol Antarmuka

Definisi

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

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
Penerapan

Keterangan

Antarmuka ini dicadangkan untuk implementasi oleh API terkait. Kami berhak mengubahnya di masa mendatang.

Properti

Nama Deskripsi
Arity

Mengembalikan aritas metode ini. Arity adalah jumlah parameter jenis yang dideklarasikan oleh metode. Metode non-generik memiliki aritas nol.

AssociatedAnonymousDelegate

Jika metode ini adalah metode Lambda (MethodKind = MethodKind.LambdaMethod) dan ada delegasi anonim yang terkait dengannya, mengembalikan delegasi ini.

Mengembalikan null jika simbol bukan lambda atau jika tidak memiliki delegasi anonim yang terkait dengannya.

AssociatedExtensionImplementation

Untuk metode/aksesor/operator dalam blok ekstensi, mengembalikan metode implementasi yang sesuai jika ada. Mengembalikan null jika tidak.

Misalnya, mempertimbangkan:

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

Ketika diberikan simbol metode untuk E.extension(int i).M(), ia mengembalikan metode E.M(this int i)implementasi statis yang sesuai .

Ketika diberi definisi anggota ekstensi generik, ia mengembalikan metode implementasi yang dibangun dengan parameter jenis anggota ekstensi.

AssociatedSymbol

Mengembalikan simbol (misalnya properti, peristiwa, dll.) yang terkait dengan metode .

CallingConvention

Enum konvensi pemanggilan simbol metode.

CanBeReferencedByName

Mengembalikan true jika simbol ini dapat dirujuk dengan namanya dalam kode.

(Diperoleh dari ISymbol)
ConstructedFrom

Mengembalikan simbol metode tempat metode ini dibangun. Simbol metode yang dihasilkan memiliki jenis yang sama yang berisi (jika ada), tetapi memiliki argumen jenis yang sama dengan parameter jenis (meskipun jenis yang berisi mungkin tidak).

ContainingAssembly

IAssemblySymbol Mendapatkan untuk rakitan yang berisi. Mengembalikan null jika simbol dibagikan di beberapa rakitan.

(Diperoleh dari ISymbol)
ContainingModule

IModuleSymbol Mendapatkan untuk modul yang berisi. Mengembalikan null jika simbol dibagikan di beberapa modul.

(Diperoleh dari ISymbol)
ContainingNamespace

INamespaceSymbol Mendapatkan untuk namespace lampiran terdekat. Mengembalikan null jika simbol tidak terkandung dalam namespace.

(Diperoleh dari ISymbol)
ContainingSymbol

ISymbol Mendapatkan untuk simbol yang segera berisi.

(Diperoleh dari ISymbol)
ContainingType

INamedTypeSymbol Mendapatkan untuk jenis yang berisi. Mengembalikan null jika simbol tidak terkandung dalam jenis.

(Diperoleh dari ISymbol)
DeclaredAccessibility

Accessibility Mendapatkan indikasi aksesibilitas yang dinyatakan untuk simbol tersebut. Mengembalikan NotApplicable jika tidak ada aksesibilitas yang dideklarasikan.

(Diperoleh dari ISymbol)
DeclaringSyntaxReferences

Dapatkan simpul sintaks di mana simbol ini dideklarasikan dalam sumber. Beberapa simbol (misalnya, jenis parsial seperti kelas, struct, dan antarmuka) dapat didefinisikan di lebih dari satu lokasi. Properti ini harus mengembalikan satu atau beberapa simpul sintaksis hanya jika simbol dideklarasikan dalam kode sumber dan juga tidak dideklarasikan secara implisit (lihat properti IsImplicitlyDeclared).

Perhatikan bahwa untuk anggota parsial (metode, properti, peristiwa), properti ini hanya mengembalikan satu simpul sintaks. Untuk mendapatkan semua simpul sintaks untuk anggota parsial, gunakan PartialDefinitionPart properti dan PartialImplementationPart pada IMethodSymbol, IPropertySymbol, atau IEventSymbol.

Perhatikan bahwa untuk simbol namespace, sintaks deklarasikan mungkin mendeklarasikan namespace berlapis. Misalnya, node sintaks yang mendeklarasikan untuk N1 di "namespace N1. N2 {...}" adalah seluruh NamespaceDeclarationSyntax untuk N1. N2. Untuk namespace global, sintaks yang mendeklarasikan akan menjadi CompilationUnitSyntax.

(Diperoleh dari ISymbol)
ExplicitInterfaceImplementations

Mengembalikan metode antarmuka yang secara eksplisit diimplementasikan oleh metode ini.

HasUnsupportedMetadata

Menunjukkan bahwa simbol ini menggunakan metadata yang tidak dapat didukung oleh bahasa.

Contohnya meliputi:

  • Jenis penunjuk di VB
  • Tipe pengembalian ByRef
  • Pengubah kustom yang diperlukan

Ini dibedakan dari, misalnya, referensi ke simbol metadata yang ditentukan dalam rakitan yang tidak direferensikan. Simbol di mana ini mengembalikan true tidak pernah berhasil digunakan, dan dengan demikian tidak boleh muncul di fitur IDE apa pun.

Ini diatur untuk simbol metadata, sebagai berikut:

  • Jenis - jika jenis tidak didukung (misalnya, jenis penunjuk)
  • Metode - parameter atau jenis pengembalian tidak didukung
  • Bidang - jenis tidak didukung
  • Peristiwa - jenis tidak didukung
  • Properti - jenis tidak didukung
  • Parameter - jenis tidak didukung

(Diperoleh dari ISymbol)
HidesBaseMethodsByName

Mengembalikan true jika metode ini menyembunyikan metode dasar berdasarkan nama. Ini tidak dapat ditentukan langsung dalam bahasa C#, tetapi dapat berlaku untuk metode yang ditentukan dalam bahasa lain yang diimpor dari metadata. Setara dengan bendera "hidebyname" dalam metadata.

IsAbstract

Mendapatkan nilai yang menunjukkan apakah simbol abstrak.

(Diperoleh dari ISymbol)
IsAsync

Mengembalikan true jika metode ini adalah metode asinkron

IsCheckedBuiltin

Mengembalikan apakah operator bawaan ini memeriksa luapan bilangan bulat.

IsConditional

Mengembalikan bendera yang menunjukkan apakah simbol ini memiliki setidaknya satu atribut kondisional yang diterapkan/diwariskan.

IsDefinition

Mendapatkan nilai yang menunjukkan apakah simbol adalah definisi asli. Mengembalikan false jika simbol berasal dari simbol lain, berdasarkan jenis substitusi misalnya.

(Diperoleh dari ISymbol)
IsExtensionMethod

Mengembalikan true jika metode ini adalah metode ekstensi "klasik" (menggunakan pengubah this di C# atau ExtensionAttribute di VB).

IsExtern

Mendapatkan nilai yang menunjukkan apakah simbol didefinisikan secara eksternal.

(Diperoleh dari ISymbol)
IsGenericMethod

Mengembalikan apakah metode ini generik; yaitu, apakah ia memiliki parameter jenis apa pun?

IsImplicitlyDeclared

Mengembalikan true jika simbol ini secara otomatis dibuat oleh pengkompilasi, dan tidak memiliki deklarasi kode sumber yang sesuai secara eksplisit.

(Diperoleh dari ISymbol)
IsInitOnly

Mengembalikan true untuk aksesor set 'init', dan false jika tidak.

IsIterator

Mengembalikan true jika metode ini adalah metode sumber yang diimplementasikan sebagai iterator (sinkronisasi atau asinkron)

IsOverride

Mendapatkan nilai yang menunjukkan apakah simbol adalah penimpaan simbol kelas dasar.

(Diperoleh dari ISymbol)
IsPartialDefinition

Mengembalikan true jika ini adalah definisi metode parsial tanpa isi. Jika ada isi yang mengimplementasikan, itu dapat diambil dengan PartialImplementationPart.

IsReadOnly

Menunjukkan apakah metode tersebut baca-saja, yaitu apakah parameter penerima 'ini' adalah 'ref readonly'. Mengembalikan true untuk metode instans readonly dan aksesor dan untuk metode ekstensi yang dikurangi dengan parameter 'this in'.

IsSealed

Mendapatkan nilai yang menunjukkan apakah simbol disegel.

(Diperoleh dari ISymbol)
IsStatic

Mendapatkan nilai yang menunjukkan apakah simbol statis.

(Diperoleh dari ISymbol)
IsVararg

Mengembalikan apakah metode ini menggunakan konvensi panggilan CLI VARARG. Ini digunakan untuk daftar argumen variabel gaya C. Ini jarang digunakan dalam kode C# dan diwakili menggunakan kata kunci "__arglist" yang tidak terdokumentasi.

Perhatikan bahwa metode dengan "param" pada parameter terakhir ditunjukkan dengan properti "IsParams" pada ParameterSymbol, dan tidak diwakili dengan properti ini.

IsVirtual

Mendapatkan nilai yang menunjukkan apakah simbol tersebut virtual.

(Diperoleh dari ISymbol)
Kind

SymbolKind Mendapat indikasi simbol seperti apa itu.

(Diperoleh dari ISymbol)
Language

Mendapatkan bahasa sumber ("C#" atau "Visual Basic").

(Diperoleh dari ISymbol)
Locations

Mendapatkan lokasi di mana simbol awalnya ditentukan, baik di sumber atau metadata. Beberapa simbol (misalnya, jenis parsial seperti kelas, struct, dan antarmuka) dapat didefinisikan di lebih dari satu lokasi. Perhatikan bahwa untuk anggota parsial (seperti metode, properti, dan peristiwa), properti ini hanya mengembalikan satu lokasi. Untuk mendapatkan semua lokasi untuk anggota parsial, gunakan PartialDefinitionPart properti dan PartialImplementationPart pada IMethodSymbol, , IPropertySymbolatau IEventSymbol.

(Diperoleh dari ISymbol)
MetadataName

Mendapatkan nama simbol seperti yang muncul dalam metadata. Sebagian besar waktu, ini sama dengan properti Nama, dengan pengecualian berikut:

  1. Nama metadata dari jenis generik mencakup akhiran "'1", "'2" dll. yang menunjukkan jumlah parameter jenis (tidak termasuk, namun, nama berisi jenis atau namespace).
  2. Nama metadata nama antarmuka eksplisit memiliki spasi yang dihapus, dibandingkan dengan properti nama.
  3. Panjang nama dibatasi untuk tidak melebihi batasan metadata.
(Diperoleh dari ISymbol)
MetadataToken

Mendapatkan token metadata yang terkait dengan simbol ini, atau 0 jika simbol tidak dimuat dari metadata.

(Diperoleh dari ISymbol)
MethodImplementationFlags

Mengembalikan bendera implementasi untuk simbol metode yang diberikan.

MethodKind

Mendapatkan metode seperti apa ini. Ada beberapa jenis hal yang berbeda dalam bahasa C# yang diwakili sebagai metode. Properti ini memungkinkan membedakan hal-hal tersebut tanpa harus mendekode nama metode.

Name

Mendapatkan nama simbol. Mengembalikan string kosong jika tidak disebutkan namanya.

(Diperoleh dari ISymbol)
OriginalDefinition

Dapatkan definisi asli dari simbol ini. Jika simbol ini berasal dari simbol lain dengan substitusi jenis (misalnya), ini mendapatkan simbol asli, seperti yang didefinisikan dalam sumber atau metadata.

OverriddenMethod

Jika metode ini mengambil alih metode lain (karena keduanya memiliki pengubah penimpaan dan dengan benar ada metode untuk mengambil alih), mengembalikan metode yang ditimpa.

Parameters

Mendapatkan parameter metode ini. Jika metode ini tidak memiliki parameter, mengembalikan daftar kosong.

PartialDefinitionPart

Jika ini adalah bagian implementasi metode parsial, mengembalikan bagian definisi yang sesuai. Jika tidak, null.

PartialImplementationPart

Jika ini adalah deklarasi metode parsial tanpa isi, dan metode diimplementasikan dengan isi, mengembalikan definisi penerapan tersebut. Jika tidak, null.

ReceiverNullableAnnotation

Jika metode ini dapat diterapkan ke objek, mengembalikan nullability tingkat atas objek yang diterapkannya.

ReceiverType

Jika metode ini dapat diterapkan ke objek, mengembalikan jenis objek yang diterapkannya.

ReducedFrom

Jika metode ini adalah metode ekstensi yang dikurangi, mengembalikan definisi metode ekstensi dari mana ini dikurangi. Jika tidak, mengembalikan null.

RefCustomModifiers

Pengubah kustom yang terkait dengan pengubah ref, atau array kosong jika tidak ada.

RefKind

Mengembalikan RefKind dari metode .

ReturnNullableAnnotation

Mendapatkan nullability tingkat atas dari jenis pengembalian metode.

ReturnsByRef

Mengembalikan true jika metode ini dikembalikan berdasarkan referensi.

ReturnsByRefReadonly

Mengembalikan true jika metode ini dikembalikan oleh ref readonly.

ReturnsVoid

Mengembalikan true jika metode ini tidak memiliki jenis pengembalian; yaitu, mengembalikan "void".

ReturnType

Mendapatkan jenis pengembalian metode .

ReturnTypeCustomModifiers

Mengembalikan daftar pengubah kustom, jika ada, yang terkait dengan jenis pengembalian.

TypeArgumentNullableAnnotations

Mengembalikan nullability tingkat atas dari argumen jenis yang telah digantikan untuk parameter jenis. Jika tidak ada yang digantikan untuk parameter jenis tertentu, maka None dikembalikan.

TypeArguments

Mengembalikan argumen jenis yang telah digantikan untuk parameter jenis. Jika tidak ada yang digantikan untuk parameter jenis tertentu, maka parameter jenis itu sendiri mempertimbangkan argumen jenis.

TypeArgumentsNullableAnnotations

Mengembalikan nullability tingkat atas dari argumen jenis yang telah digantikan untuk parameter jenis. Jika tidak ada yang digantikan untuk parameter jenis tertentu, maka NotApplicable dikembalikan.

TypeParameters

Dapatkan parameter jenis pada metode ini. Jika metode belum umum, mengembalikan daftar kosong.

UnmanagedCallingConventionTypes

Jenis pengubah yang dianggap sebagai bagian dari konvensi panggilan metode ini, jika MethodKind adalah FunctionPointerSignature dan CallingConvention adalah Unmanaged. Jika ini bukan tanda tangan penunjuk fungsi atau konvensi panggilan tidak dikelola, ini adalah array kosong. Urutan dan duplikasi pengubah ini mencerminkan urutan sumber/metadata dan duplikasi, mana pun simbol ini berasal.

Metode

Nama Deskripsi
Accept(SymbolVisitor)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

(Diperoleh dari ISymbol)
Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

(Diperoleh dari ISymbol)
Accept<TResult>(SymbolVisitor<TResult>)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

(Diperoleh dari ISymbol)
Construct(ImmutableArray<ITypeSymbol>, ImmutableArray<NullableAnnotation>)

Mengembalikan metode yang dibangun mengingat argumen jenisnya dan anotasi tipe argumen nullable.

Construct(ITypeSymbol[])

Mengembalikan metode yang dibangun mengingat argumen jenisnya.

Equals(ISymbol, SymbolEqualityComparer)

Menentukan apakah simbol ini sama dengan simbol lain, sesuai dengan aturan yang disediakan SymbolEqualityComparer

(Diperoleh dari ISymbol)
GetAttributes()

Mendapatkan atribut untuk simbol . Mengembalikan kosong ImmutableArray<T> jika tidak ada atribut.

(Diperoleh dari ISymbol)
GetDllImportData()

Platform memanggil informasi, atau null jika metodenya bukan P/Invoke.

GetDocumentationCommentId()

Mengembalikan ID Komentar Dokumentasi untuk simbol, atau null jika simbol tidak mendukung komentar dokumentasi.

(Diperoleh dari ISymbol)
GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Mendapatkan XML (sebagai teks) untuk komentar yang terkait dengan simbol .

(Diperoleh dari ISymbol)
GetReturnTypeAttributes()

Mengembalikan daftar atribut kustom, jika ada, yang terkait dengan nilai yang dikembalikan.

GetTypeInferredDuringReduction(ITypeParameterSymbol)

Jika metode ini adalah metode ekstensi yang dikurangi, mengembalikan jenis yang disimpulkan selama proses pengurangan untuk parameter jenis.

ReduceExtensionMember(ITypeSymbol)

Jika ini adalah metode blok ekstensi yang dapat diterapkan ke penerima dari jenis yang diberikan, mengembalikan simbol metode dalam ekstensi pengganti untuk jenis penerima tersebut. Jika tidak, mengembalikan null.

ReduceExtensionMethod(ITypeSymbol)

Jika ini adalah metode ekstensi yang dapat diterapkan ke penerima dari jenis yang diberikan, mengembalikan simbol metode ekstensi yang dikurangi sehingga terbentuk. Jika tidak, mengembalikan null.

ToDisplayParts(SymbolDisplayFormat)

Konversi simbol menjadi array bagian string, yang masing-masing memiliki jenis. Berguna untuk mewarnai string tampilan.

(Diperoleh dari ISymbol)
ToDisplayString(SymbolDisplayFormat)

Mengonversi simbol menjadi representasi string.

(Diperoleh dari ISymbol)
ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Konversi simbol menjadi array bagian string, yang masing-masing memiliki jenis. Dapat disesuaikan dengan lokasi tertentu dalam kode sumber. Berguna untuk mewarnai string tampilan.

(Diperoleh dari ISymbol)
ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Mengonversi simbol menjadi string yang dapat ditampilkan kepada pengguna. Dapat disesuaikan dengan lokasi tertentu dalam kode sumber.

(Diperoleh dari ISymbol)

Metode Ekstensi

Nama Deskripsi
GetConstructedReducedFrom(IMethodSymbol)

Mengembalikan formulir yang dibangun dari properti ReducedFrom, termasuk argumen jenis yang disimpulkan selama pengurangan atau disediakan di situs panggilan.

HandledEvents(IMethodSymbol)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

IsMustOverride(ISymbol)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

IsNotOverridable(ISymbol)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

IsOverloads(IMethodSymbol)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

IsOverridable(ISymbol)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

IsOverrides(ISymbol)

Mewakili metode atau simbol seperti metode (termasuk konstruktor, destruktor, operator, atau aksesor properti/peristiwa).

IsShared(ISymbol)

Menentukan apakah simbol Dibagikan.

Berlaku untuk