Marshal.DestroyStructure Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
| Name | Description |
|---|---|
| DestroyStructure(IntPtr, Type) |
Zastaralé.
Uvolní všechny podstruktury, na které odkazuje zadaný nespravovaný blok paměti. |
| DestroyStructure<T>(IntPtr) |
Uvolní všechny dílčí struktury zadaného typu, na které odkazuje zadaný nespravovaný blok paměti. |
DestroyStructure(IntPtr, Type)
- Zdroj:
- Marshal.CoreCLR.cs
- Zdroj:
- Marshal.CoreCLR.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.CoreCLR.cs
Upozornění
DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520
Uvolní všechny podstruktury, na které odkazuje zadaný nespravovaný blok paměti.
public:
static void DestroyStructure(IntPtr ptr, Type ^ structuretype);
[System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")]
[System.Security.SecurityCritical]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead.")]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(true)]
public static void DestroyStructure(IntPtr ptr, Type structuretype);
[<System.Obsolete("DestroyStructure(IntPtr, Type) may be unavailable in future releases. Instead, use DestroyStructure<T>(IntPtr). For more info, go to http://go.microsoft.com/fwlink/?LinkID=296520")>]
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available. Use the DestroyStructure<T> overload instead.")>]
static member DestroyStructure : nativeint * Type -> unit
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member DestroyStructure : nativeint * Type -> unit
Public Shared Sub DestroyStructure (ptr As IntPtr, structuretype As Type)
Parametry
- ptr
-
IntPtr
nativeint
Ukazatel na nespravovaný blok paměti.
- structuretype
- Type
Typ formátované třídy Poskytuje informace o rozložení potřebné k odstranění vyrovnávací paměti v parametru ptr .
- Atributy
Výjimky
structuretype má automatické rozložení. Místo toho použijte sekvenční nebo explicitní.
Poznámky
Tuto metodu můžete použít k bezplatnému referenčnímu typu polí, jako jsou řetězce, nespravované struktury. Na rozdíl od polí může být struktura typu hodnoty nebo typu odkazu. Struktury typu hodnota, které obsahují pole typu hodnota (všechna blittable), nemají žádné odkazy, jejichž paměť musí být uvolněna. Tato Marshal.StructureToPtr metoda používá tuto metodu, aby se zabránilo nevrácené paměti při opakovaném použití paměti obsazené strukturou.
DestroyStructure volá COM SysFreeString funkce, která zase uvolní přidělený řetězec.
Kromě DestroyStructuretřídy Marshal poskytuje dvě další metody uvolnění paměti: FreeCoTaskMem a FreeHGlobal.
Viz také
Platí pro
DestroyStructure<T>(IntPtr)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
Uvolní všechny dílčí struktury zadaného typu, na které odkazuje zadaný nespravovaný blok paměti.
public:
generic <typename T>
static void DestroyStructure(IntPtr ptr);
[System.Security.SecurityCritical]
public static void DestroyStructure<T>(IntPtr ptr);
public static void DestroyStructure<T>(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member DestroyStructure : nativeint -> unit
static member DestroyStructure : nativeint -> unit
Public Shared Sub DestroyStructure(Of T) (ptr As IntPtr)
Parametry typu
- T
Typ formátované struktury. Poskytuje informace o rozložení potřebné k odstranění vyrovnávací paměti v parametru ptr .
Parametry
- ptr
-
IntPtr
nativeint
Ukazatel na nespravovaný blok paměti.
- Atributy
Výjimky
T má automatické rozložení. Místo toho použijte sekvenční nebo explicitní.
Poznámky
Tuto metodu můžete použít k uvolnění polí typu odkazu, jako jsou řetězce, nespravované struktury. Na rozdíl od polí může být struktura typu hodnoty nebo typu odkazu. Struktury typů hodnot, které obsahují pole typu hodnoty (všechna blittable), nemají žádné odkazy, jejichž paměť musí být uvolněna. Tato Marshal.StructureToPtr metoda používá tuto metodu, aby se zabránilo nevrácené paměti při opakovaném použití paměti obsazené strukturou.
DestroyStructure volá COM SysFreeString funkce, která zase uvolní přidělený řetězec.