Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan Saiz Contoh 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!