Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan Saiz Byte Objek C#?
Meneroka saiz bait objek C#
Dalam C#, tidak mudah untuk menentukan saiz bait mana-mana contoh objek dengan tepat. Objek mungkin mengandungi pelbagai koleksi, gabungan dan entiti individu, menjadikannya sukar untuk mengukur saiznya dengan tepat.
Tentukan saiz objek
Walaupun tiada API awam, terdapat cara yang cekap untuk menentukan saiz bait objek:
<code class="language-csharp">object obj = new List<int>(); RuntimeTypeHandle th = obj.GetType().TypeHandle; int size = *(*(int**)&th + 1); Console.WriteLine(size);</code>
Kod ini menggunakan jenis objek TypeHandle
untuk mendapatkan medan "Saiz Contoh Asas" dalaman. Ambil perhatian bahawa kaedah ini tidak didokumenkan dan mungkin ditamatkan dalam kemas kini .NET yang akan datang.
Faktor yang perlu dipertimbangkan
Kaedah ini berfungsi pada objek "biasa" yang mempunyai contoh jenis yang sama dan jelas. Walau bagaimanapun, ia tidak dapat mengukur dengan tepat saiz objek seperti tatasusunan, rentetan dan StringBuilders kerana saiznya bergantung pada bilangan elemen yang terkandung di dalamnya. Untuk objek ini, saiz elemen yang mengandunginya mesti ditambah pada saiz contoh asasnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Saiz Byte Objek C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!