UnmanagedCallersOnlyAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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) |