Marshal.DestroyStructure Metoda

Definice

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.

Platí pro