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
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
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 bir yapı hem yönetilmeyen hem de yönetilen yapılandırılmış türleri tanımlayabilir. 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.