UnmanagedCallersOnlyAttribute Kelas
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.
Metode apa pun yang ditandai dengan UnmanagedCallersOnlyAttribute dapat langsung dipanggil dari kode asli. Token fungsi dapat dimuat ke variabel lokal menggunakan alamat operator
public ref class UnmanagedCallersOnlyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class UnmanagedCallersOnlyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type UnmanagedCallersOnlyAttribute = class
inherit Attribute
Public NotInheritable Class UnmanagedCallersOnlyAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut menunjukkan meneruskan panggilan balik yang ditandai UnmanagedCallersOnlyAttribute ke fungsi asli.
[DllImport("NativeLibrary")]
internal static extern unsafe void NativeFunctionWithCallback(delegate* unmanaged[Cdecl]<int, int> callback);
[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
private static int DoubleInt(int i) => i * 2;
public static unsafe void PassCallbackToNativeFunction()
{
NativeFunctionWithCallback(&DoubleInt);
}
Keterangan
Metode yang ditandai dengan atribut ini memiliki batasan berikut:
- Harus ditandai
static. - Tidak boleh dipanggil dari kode terkelola.
- Hanya boleh memiliki argumen yang dapat di-blittable .
- Tidak boleh memiliki parameter jenis generik atau terkandung dalam kelas generik.
Konstruktor
| Nama | Deskripsi |
|---|---|
| UnmanagedCallersOnlyAttribute() |
Menginisialisasi instans baru UnmanagedCallersOnlyAttribute . |
Bidang
| Nama | Deskripsi |
|---|---|
| CallConvs |
Optional. Jika dihilangkan, runtime akan menggunakan konvensi panggilan platform default. |
| EntryPoint |
Optional. Jika dihilangkan, tidak ada ekspor bernama yang dipancarkan selama kompilasi. |
Properti
| Nama | Deskripsi |
|---|---|
| TypeId |
Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini. (Diperoleh dari Attribute) |
Metode
| Nama | Deskripsi |
|---|---|
| Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| IsDefaultAttribute() |
Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
| Match(Object) |
Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |