Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan Saiz Contoh Objek dalam Bait dalam C#?

Bagaimanakah Saya Boleh Menentukan Saiz Contoh Objek dalam Bait dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-10 16:11:42802semak imbas

How Can I Determine the Size of an Object Instance in Bytes in C#?

Dapatkan saiz objek (dalam bait) dalam C#

Bagaimana untuk menentukan saiz (dalam bait) mana-mana contoh objek dalam C#? Ini amat berguna apabila anda perlu menentukan saiz agregat pelbagai koleksi objek.

Dapatkan saiz objek

Untuk mendapatkan saiz kejadian, anda boleh menggunakan satu siri helah tanpa dokumen. Perlu diingat bahawa kaedah ini tidak dijamin sentiasa berfungsi dan mungkin berubah pada masa hadapan kemas kini .NET.

Gunakan TypeHandle

Anda boleh menggunakan struktur dalaman TypeHandle untuk mengakses medan "saiz contoh asas" sesuatu jenis. Begini caranya:

<code class="language-csharp">object obj = new List<int>(); // 使用您需要的对象替换
RuntimeTypeHandle th = obj.GetType().TypeHandle;
int size = *(*(int**)&th + 1);
Console.WriteLine(size);</code>

Kaedah ini akan menyediakan saiz contoh asas untuk kebanyakan jenis biasa. Walau bagaimanapun, tatasusunan, rentetan dan StringBuilder memerlukan pengiraan tambahan untuk mengambil kira elemen yang terkandung di dalamnya.

Pertimbangan kaedah sambungan

Walaupun tiada kaedah sambungan yang diketahui secara jelas untuk menentukan saiz objek dalam bait, anda boleh membangunkannya sendiri jika mahu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Saiz Contoh Objek dalam Bait dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn