首頁 > 後端開發 > C++ > 如何在 C# 中確定物件實例的大小(以位元組為單位)?

如何在 C# 中確定物件實例的大小(以位元組為單位)?

Susan Sarandon
發布: 2025-01-10 16:11:42
原創
799 人瀏覽過

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

C# 中取得物件大小(以位元組為單位)

如何確定 C# 中任何物件實例的大小(以位元組為單位)?這對於需要確定各種物件集合的聚合大小的情況尤其有用。

取得物件大小

要取得實例的大小,您可以使用一系列未公開的技巧。請記住,這些方法不能保證始終有效,並且在未來的 .NET 更新中可能會發生變化。

使用 TypeHandle

您可以使用 TypeHandle 內部結構來存取類型的「基本實例大小」欄位。方法如下:

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

此方法將為大多數普通型別提供基本實例大小。但是,陣列、字串和 StringBuilder 需要額外的計算來考慮其包含的元素。

擴展方法的考量

雖然沒有已知的擴展方法明確地用於確定物件大小(以位元組為單位),但如果需要,您可以自己開發一個。

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

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