UnmanagedCallersOnlyAttribute Sınıf

Tanım

ile UnmanagedCallersOnlyAttribute işaretlenmiş herhangi bir yöntem doğrudan yerel koddan çağrılabilir. İşlev belirteci C# içindeki address-of işleci 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 bir işleve işaretlenmiş 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öntemlerin kısıtlamaları şunlardır:

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

Oluşturucular

UnmanagedCallersOnlyAttribute()

Yeni UnmanagedCallersOnlyAttribute bir örnek başlatır.

Alanlar

CallConvs

İsteğe bağlı. Belirtilmezse, çalışma zamanı varsayılan platform çağırma kuralını kullanır.

EntryPoint

İsteğe bağlı. Atlanırsa, derleme sırasında adlandırılmış dışarı aktarma işlemi yapılmaz.

Özellikler

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

Equals(Object)

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

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

Bu örneğe ilişkin karma kodu döndürür.

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

Type Geçerli örneğini 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 Objectöğesinin sığ bir kopyasını oluşturur.

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

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

(Devralındığı yer: Object)

Şunlara uygulanır