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.
Tür, aşağıdaki türlerden biriyse yönetilmeyen bir türdür:
-
sbyte,byte,short, ,ushort,int,uint,long, ,ulong,nint,nuint, ,charfloat,doubledecimalveyabool - Herhangi bir sabit listesi türü
- Herhangi bir işaretçi türü
- Üyeleri yönetilmeyen türde olan bir tanımlama grubu
- Yalnızca yönetilmeyen tür alanlarını içeren kullanıcı tanımlı herhangi bir yapı türü.
Tür parametresinin işaretçi olmayan, null atanamayan yönetilmeyen bir tür olduğunu belirtmek için kısıtlamayı kullanabilirsiniz.unmanaged
Aşağıdaki örnekte gösterildiği gibi, yalnızca yönetilmeyen tür alanlarını içeren yapılandırılmış bir yapı türü de yönetilmez:
using System;
public struct Coords<T>
{
public T X;
public T Y;
}
public class UnmanagedTypes
{
public static void Main()
{
DisplaySize<Coords<int>>();
DisplaySize<Coords<double>>();
}
private unsafe static void DisplaySize<T>() where T : unmanaged
{
Console.WriteLine($"{typeof(T)} is unmanaged and its size is {sizeof(T)} bytes");
}
}
// Output:
// Coords`1[System.Int32] is unmanaged and its size is 8 bytes
// Coords`1[System.Double] is unmanaged and its size is 16 bytes
Genel yapı hem yönetilmeyen hem de yönetilen yapılandırılmış türlerin kaynağı olabilir. Yukarıdaki örnek genel bir yapı Coords<T> tanımlar ve yönetilmeyen yapılandırılmış türlerin örneklerini sunar. Yönetilen tür örneği: Coords<object>. Yönetilen türündeki alanlara object sahip olduğundan yönetilir.
Oluşturulan tüm türlerin yönetilmeyen türler olmasını istiyorsanız, genel yapı tanımında kısıtlamayı kullanınunmanaged:
public struct Coords<T> where T : unmanaged
{
public T X;
public T Y;
}
C# dil belirtimi
Daha fazla bilgi için C# dilbelirtiminin İşaretçi türleri bölümüne bakın.