Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Typ jest typem niezarządzanym , jeśli jest to dowolny z następujących typów:
-
sbyte,byte, ,shortushortintuintlongulongnintnuintcharfloatdoubledecimallubbool - Dowolny typ wyliczenia
- Dowolny typ wskaźnika
- Krotka, której składowe są typu niezarządzanego
- Dowolny typ struktury zdefiniowany przez użytkownika, który zawiera tylko pola niezarządzanych typów.
Możesz użyć unmanaged ograniczenia , aby określić, że parametr typu jest typem, który nie jest wskaźnikiem, niepodważalnym typem niezarządzanym.
Skonstruowany typ struktury, który zawiera pola tylko typów niezarządzanych, jest również niezarządzany, jak pokazano w poniższym przykładzie:
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
Struktura ogólna może być źródłem zarówno typów niezarządzanych, jak i zarządzanych. W poprzednim przykładzie zdefiniowano ogólną strukturę Coords<T> i przedstawiono przykłady niezarządzanych typów skonstruowanych. Przykładem typu zarządzanego jest Coords<object>. Jest on zarządzany, ponieważ ma pola object typu, który jest zarządzany. Jeśli chcesz, aby wszystkie skonstruowane typy były typami niezarządzanym, użyj unmanaged ograniczenia w definicji struktury ogólnej:
public struct Coords<T> where T : unmanaged
{
public T X;
public T Y;
}
Specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz sekcję Typy wskaźnikówspecyfikacji języka C#.
Zobacz także
- Typy wskaźników
- typy związane z pamięcią i zakresem
- sizeof, operator
- stackalloc