Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Typ je nespravovaný typ , pokud se jedná o některý z následujících typů:
-
sbyte,byte, ,short,ushort,int,uintlongulongnintnuintcharfloatdoubledecimalnebobool - Libovolný typ výčtu
- Libovolný typ ukazatele
- Řazená kolekce členů, jejíž členy jsou všechny nespravované typy
- Jakýkoli uživatelem definovaný typ struktury , který obsahuje pouze pole nespravovaných typů.
Pomocí omezení můžete unmanaged určit, že parametr typu je nespravovaný typ bez hodnoty null.
Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.
Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.
Návod
Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.
Vytvořený typ struktury, který obsahuje pole nespravovaných typů, je také nespravovaný, jak ukazuje následující příklad:
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
Obecná struktura může definovat nespravované i spravované konstruované typy. Předchozí příklad definuje obecnou strukturu Coords<T> a představuje příklady nespravovaných konstruovaných typů. Příkladem spravovaného typu je Coords<object>. Spravuje se, protože má pole object typu, která se spravují. Pokud chcete, aby všechny konstruované typy byly nespravované typy, použijte unmanaged omezení v definici obecné struktury:
public struct Coords<T> where T : unmanaged
{
public T X;
public T Y;
}
Specifikace jazyka C#
Další informace naleznete v části Typy ukazatelůspecifikace jazyka C#.