UnmanagedCallersOnlyAttribute Sınıf

Tanım

UnmanagedCallersOnlyAttribute ile işaretlenmiş herhangi bir yöntem doğrudan yerel koddan çağrılabilir. İşlev belirteci, C# içindeki işlecinin adresi kullanılarak yerel bir değişkene yüklenebilir ve yerel bir yönteme geri çağırma olarak geçirilebilir.

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
Devralma
UnmanagedCallersOnlyAttribute
Öznitelikler

Örnekler

Aşağıdaki örnek, yerel işleve işaretlenen UnmanagedCallersOnlyAttribute bir geri çağırma geçirmeyi gösterir.

[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);
}

Açıklamalar

Bu öznitelikle işaretlenmiş yöntemler aşağıdaki kısıtlamalara sahiptir:

  • olarak işaretlenmelidir static.
  • Yönetilen koddan çağrılmamalıdır.
  • Yalnızca blittable bağımsız değişkenleri olmalıdır.
  • Genel tür parametrelerine sahip olmamalıdır veya genel bir sınıf içinde bulunmamalıdır.

Oluşturucular

Name Description
UnmanagedCallersOnlyAttribute()

Yeni UnmanagedCallersOnlyAttribute bir örnek başlatır.

Alanlar

Name Description
CallConvs

Optional. Belirtilmezse, çalışma zamanı varsayılan platform çağırma kuralını kullanır.

EntryPoint

Optional. Belirtilmezse, derleme sırasında adlandırılmış dışarı aktarma belirtilmez.

Özellikler

Name Description
TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Name Description
Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır