MethodImplAttributes Enum

Definisi

Menentukan bendera untuk atribut implementasi metode.

Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.

API ini mendukung infrastruktur produk dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

public enum class MethodImplAttributes
public enum MethodImplAttributes
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplAttributes
type MethodImplAttributes = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplAttributes = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplAttributes = 
Public Enum MethodImplAttributes
Warisan
MethodImplAttributes
Atribut

Bidang

Nama Nilai Deskripsi
IL 0

Menentukan bahwa implementasi metode dalam bahasa perantara (MSIL) Microsoft.

Managed 0

Menentukan bahwa metode diimplementasikan dalam kode terkelola.

Native 1

Menentukan bahwa implementasi metode asli.

OPTIL 2

Menentukan bahwa implementasi metode berada dalam Optimized Intermediate Language (OPTIL).

CodeTypeMask 3

Menentukan bendera tentang jenis kode.

Runtime 3

Menentukan bahwa implementasi metode disediakan oleh runtime.

ManagedMask 4

Menentukan apakah metode diimplementasikan dalam kode terkelola atau tidak terkelola.

Unmanaged 4

Menentukan bahwa metode diimplementasikan dalam kode yang tidak dikelola.

NoInlining 8

Menentukan bahwa metode tidak dapat di-inlin.

ForwardRef 16

Menentukan bahwa metode tidak ditentukan.

Synchronized 32

Menentukan bahwa metode berulir tunggal melalui isi. Metode statis (Shared di Visual Basic) mengunci jenis, sedangkan metode instans mengunci instans. Anda juga dapat menggunakan pernyataan C# lock atau pernyataan Visual Basic SyncLock untuk tujuan ini.

NoOptimization 64

Menentukan bahwa metode tidak dioptimalkan oleh pengkompilasi just-in-time (JIT) atau dengan pembuatan kode asli (lihat Ngen.exe) saat men-debug kemungkinan masalah pembuatan kode.

PreserveSig 128

Menentukan bahwa tanda tangan metode diekspor persis seperti yang dinyatakan.

AggressiveInlining 256

Menentukan bahwa metode harus di-inlin sedapat mungkin.

AggressiveOptimization 512

Menentukan bahwa metode harus dioptimalkan jika memungkinkan.

SecurityMitigations 1024

Anggota ini dicadangkan untuk digunakan di masa mendatang. Ini diperkenalkan dalam .NET Framework 4.8.

InternalCall 4096

Menentukan panggilan internal.

Async 8192
MaxMethodImplVal 65535

Menentukan nilai pemeriksaan rentang.

Keterangan

Atribut digabungkan menggunakan operasi bitwise OR sebagai berikut:

Masker implementasi kode:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Masker terkelola:

  • ManagedMask

  • Unmanaged

  • Managed

Informasi implementasi dan masker interop:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (Tersedia dimulai dengan .NET Framework 4.8.)

Note

Mengunci instans atau pada jenis, seperti halnya Synchronized bendera, tidak disarankan untuk jenis publik, karena kode selain milik Anda dapat mengambil kunci pada jenis dan instans publik. Ini dapat menyebabkan kebuntuan atau masalah sinkronisasi lainnya.

Berlaku untuk

Lihat juga