Marshal.DestroyStructure Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
DestroyStructure(IntPtr, Type) |
Kedaluwarsa.
Membebaskan semua substruktur yang dituju oleh blok memori tidak terkelola yang ditentukan. |
DestroyStructure<T>(IntPtr) |
Membebaskan semua substruktur dari jenis tertentu yang dituju oleh blok memori yang tidak terkelola yang ditentukan. |
DestroyStructure(IntPtr, Type)
- Sumber:
- Marshal.cs
- Sumber:
- Marshal.cs
- Sumber:
- Marshal.CoreCLR.cs
Perhatian
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
Membebaskan semua substruktur yang dituju oleh blok memori tidak terkelola yang ditentukan.
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);
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
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)
Parameter
- ptr
-
IntPtr
nativeint
Penunjuk ke blok memori yang tidak terkelola.
- structuretype
- Type
Jenis kelas yang diformat. Ini menyediakan informasi tata letak yang diperlukan untuk menghapus buffer dalam ptr
parameter .
- Atribut
Pengecualian
structureType
memiliki tata letak otomatis. Gunakan berurutan atau eksplisit sebagai gantinya.
Keterangan
Anda dapat menggunakan metode ini untuk membebaskan bidang jenis referensi, seperti string, dari struktur yang tidak dikelola. Tidak seperti bidangnya, struktur dapat berupa jenis nilai atau jenis referensi. Struktur jenis nilai yang berisi bidang jenis nilai (semua dapat di-blittable) tidak memiliki referensi yang memorinya harus dibebaskan. Metode ini Marshal.StructureToPtr menggunakan metode ini untuk mencegah kebocoran memori saat menggunakan kembali memori yang ditempati oleh struktur.
DestroyStructure memanggil fungsi COM SysFreeString , yang, pada gilirannya, membebaskan string yang dialokasikan.
Selain DestroyStructure, Marshal kelas menyediakan dua metode dealokasi memori lainnya: FreeCoTaskMem dan FreeHGlobal.
Lihat juga
Berlaku untuk
DestroyStructure<T>(IntPtr)
- Sumber:
- Marshal.cs
- Sumber:
- Marshal.cs
- Sumber:
- Marshal.cs
Membebaskan semua substruktur dari jenis tertentu yang dituju oleh blok memori yang tidak terkelola yang ditentukan.
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)
Jenis parameter
- T
Jenis struktur yang diformat. Ini menyediakan informasi tata letak yang diperlukan untuk menghapus buffer dalam ptr
parameter .
Parameter
- ptr
-
IntPtr
nativeint
Penunjuk ke blok memori yang tidak terkelola.
- Atribut
Pengecualian
T
memiliki tata letak otomatis. Gunakan berurutan atau eksplisit sebagai gantinya.
Keterangan
Anda dapat menggunakan metode ini untuk membebaskan bidang jenis referensi, seperti string, dari struktur yang tidak dikelola. Tidak seperti bidangnya, struktur dapat berupa jenis nilai atau jenis referensi. Struktur jenis nilai yang berisi bidang jenis nilai (semua blittable) tidak memiliki referensi yang memorinya harus dibebaskan. Metode ini Marshal.StructureToPtr menggunakan metode ini untuk mencegah kebocoran memori saat menggunakan kembali memori yang ditempati oleh struktur.
DestroyStructure memanggil fungsi COM SysFreeString , yang, pada gilirannya, membebaskan string yang dialokasikan.