Bagikan melalui


UnmanagedCallersOnlyAttribute Kelas

Definisi

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
UnmanagedCallersOnlyAttribute
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)

Berlaku untuk