Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sebagai fitur refleksi baru, tipe penunjuk fungsi sekarang menjadi instance System.Type dengan kemampuan baru seperti Type.IsFunctionPointer. Sebelumnya, instance yang dikembalikan adalah dari tipe System.Type.
Penggunaan System.Type dengan cara ini mirip dengan bagaimana jenis lain diekspos, seperti pointer (Type.IsPointer) dan array (Type.IsArray).
Fungsionalitas baru ini saat ini diimplementasikan dalam runtime CoreCLR dan di MetadataLoadContext. Dukungan untuk runtime Mono dan NativeAOT diharapkan akan dilakukan di masa mendatang.
Instans penunjuk fungsi, yang merupakan alamat fisik ke fungsi, terus diwakili sebagai IntPtr; hanya jenis pantulan yang telah berubah.
Perilaku sebelumnya
Sebelumnya, typeof(delegate*<void>()) mengembalikan tipe System.IntPtr untuk tipe penunjuk fungsi. Demikian pula, pantulan juga mengembalikan jenis ini untuk jenis penunjuk fungsi, seperti dengan FieldInfo.FieldType. Jenis IntPtr tidak mengizinkan akses apa pun ke tipe parameter, tipe pengembalian, atau konvensi panggilan.
Perilaku baru
typeof dan refleksi sekarang menggunakan System.Type untuk jenis penunjuk fungsi, yang menyediakan akses ke jenis parameter, jenis pengembalian, dan konvensi panggilan.
Versi yang diperkenalkan
.NET 8 Pratinjau 2
Jenis perubahan yang memutus kompatibilitas
Perubahan ini adalah perubahan perilaku .
Alasan perubahan
Perubahan ini menambahkan kemampuan untuk mendapatkan metadata penunjuk fungsi termasuk jenis parameter, jenis pengembalian, dan konvensi panggilan. Dukungan pointer fungsi ditambahkan dengan C# 9 dan .NET 5, tetapi dukungan refleksi tidak ditambahkan pada saat itu.
Tindakan yang direkomendasikan
Jika Anda ingin kode Anda mendukung penunjuk fungsi dan memperlakukannya secara khusus, gunakan API baru Type.IsFunctionPointer .