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 di C# dan diteruskan sebagai panggilan balik ke metode asli.
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
UnmanagedCallersOnlyAttribute() |
Menginisialisasi instans baru UnmanagedCallersOnlyAttribute . |
Bidang
CallConvs |
Pilihan. Jika dihilangkan, runtime akan menggunakan konvensi panggilan platform default. |
EntryPoint |
Pilihan. Jika dihilangkan, tidak ada ekspor bernama yang dipancarkan selama kompilasi. |
Properti
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
Metode
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 dari instans Type saat ini. (Diperoleh dari Object) |
IsDefaultAttribute() |
Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
Match(Object) |
Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |