首頁 > 後端開發 > C++ > 如何確定 C# 物件的位元組大小?

如何確定 C# 物件的位元組大小?

Linda Hamilton
發布: 2025-01-10 15:56:41
原創
458 人瀏覽過

How Can I Determine the Byte Size of C# Objects?

探究 C# 物件的位元組大小

在 C# 中,精確確定任意物件實例的位元組大小並非易事。物件可能包含各種集合、組合和單一實體,這使得準確測量其大小變得困難。

確定物件大小

雖然沒有公開的 API,但有一個有效的方法可以確定物件的位元組大小:

<code class="language-csharp">object obj = new List<int>();
RuntimeTypeHandle th = obj.GetType().TypeHandle;
int size = *(*(int**)&th + 1);
Console.WriteLine(size);</code>
登入後複製

這段程式碼利用物件的類型 TypeHandle 取得內部的「基本實例大小」欄位。需要注意的是,此方法未在文件中說明,並且在未來的 .NET 更新中可能會被棄用。

需要考慮的因素

此方法適用於具有相同、明確定義類型的實例的「普通」物件。但是,它無法準確測量數組、字串和 StringBuilder 等物件的大小,因為它們的大小取決於它們包含的元素數量。對於這些對象,必須將其包含元素的大小添加到其基本實例大小中。

以上是如何確定 C# 物件的位元組大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板