Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yeni bir yansıma özelliği olarak işlev işaretçisi türü artık gibi System.Typeyeni özelliklere sahip bir Type.IsFunctionPointer örnektir. Daha önce döndürülen System.Type nesne IntPtr türündeydi.
Bu şekilde System.Type kullanmak, işaretçiler (Type.IsPointer) ve diziler (Type.IsArray) gibi diğer türlerin kullanımına sunulma şekline benzer.
Bu yeni özellik şu anda CoreCLR çalışma zamanında ve MetadataLoadContext içinde uygulanmaktadır. Mono ve NativeAOT çalışma zamanları için destek daha sonra beklenir.
bir işlevin fiziksel adresi olan bir işlev işaretçisi örneği, bir IntPtrolarak temsil edilmeye devam eder; yalnızca yansıma türü değişmiştir.
Önceki davranış
Daha önce, bir işlev işaretçi türü typeof(delegate*<void>()) türünü döndürmüştü. Benzer şekilde, yansıma da FieldInfo.FieldType örneği gibi bir işlev işaretçisi türü için bu türü döndürdü. Türü IntPtr parametre türlerine, dönüş türüne veya çağırma kurallarına erişime izin vermedi.
Yeni davranış
typeof ve yansıma artık bir işlev işaretçisi türü olarak System.Type kullanır ve bu, parametre türleri, dönüş türü ve çağırma kurallarına erişim sağlar.
Sürüm kullanıma sunulmuştur
.NET 8 Önizleme 2
Kesinti yaratan değişiklik türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Bu değişiklik parametre türleri, dönüş türü ve çağırma kuralları dahil olmak üzere işlev işaretçisi meta verilerini alma özelliğini ekler. İşlev işaretçisi desteği C# 9 ve .NET 5 ile eklendi, ancak yansıma desteği o sırada eklenmedi.
Önerilen eylem
Kodunuzun işlev işaretçilerini desteklemesini ve bunları özel olarak işlemesini istiyorsanız yeni Type.IsFunctionPointer API'yi kullanın.