MethodImplOptions Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan konstanta yang menentukan detail bagaimana metode diimplementasikan.
Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.
public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions =
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions =
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions =
Public Enum MethodImplOptions
- Warisan
- Atribut
Bidang
AggressiveInlining | 256 | Metode harus di-inlin jika memungkinkan. Penggunaan atribut ini yang tidak perlu dapat mengurangi performa. Atribut dapat menyebabkan batas implementasi ditemui yang akan mengakibatkan kode yang dihasilkan lebih lambat. Selalu ukur performa untuk memastikan sangat membantu untuk menerapkan atribut ini. |
AggressiveOptimization | 512 | Metode ini berisi kode yang harus selalu dioptimalkan untuk performa. Jarang tepat untuk menggunakan atribut ini. Metode yang menerapkan atribut ini melewati tingkat pertama kompilasi berjenjang dan karenanya tidak mendapat manfaat dari pengoptimalan yang bergantung pada kompilasi berjenjang. Pengoptimalan tersebut termasuk PGO dinamis dan pengoptimalan berdasarkan kelas yang diinisialisasi. Penggunaan atribut ini juga dapat meningkatkan penggunaan memori. Selalu ukur performa untuk memastikan sangat membantu untuk menerapkan atribut ini. |
ForwardRef | 16 | Metode ini dinyatakan, tetapi implementasinya disediakan di tempat lain. |
InternalCall | 4096 | Panggilan bersifat internal, yaitu memanggil metode yang diimplementasikan dalam runtime bahasa umum. |
NoInlining | 8 | Metode tidak dapat di-inlin. Inlining adalah pengoptimalan di mana panggilan metode diganti dengan isi metode. |
NoOptimization | 64 | Metode ini 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 | Tanda tangan metode diekspor persis seperti yang dinyatakan. |
SecurityMitigations | 1024 | Anggota ini dicadangkan untuk digunakan di masa mendatang. Ini diperkenalkan dalam .NET Framework 4.8. |
Synchronized | 32 | Metode ini hanya dapat dijalankan oleh satu utas pada satu waktu. Metode statis mengunci jenis, sedangkan metode instans mengunci instans. Hanya satu utas yang dapat dijalankan di salah satu fungsi instans, dan hanya satu utas yang dapat dijalankan dalam salah satu fungsi statis kelas. |
Unmanaged | 4 | Metode ini diimplementasikan dalam kode yang tidak dikelola. |
Keterangan
Enumerasi ini digunakan dengan MethodImplAttribute atribut .
Anda dapat menentukan beberapa MethodImplOptions nilai dengan menggunakan operator OR bitwise.
Catatan
Mengunci instans atau pada jenis, seperti halnya Synchronized
bendera, tidak disarankan untuk jenis publik, karena kode selain milik Anda sendiri dapat mengunci jenis dan instans publik. Ini dapat menyebabkan kebuntuan atau masalah sinkronisasi lainnya.