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

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

Linda Hamilton
Linda Hamilton原創
2025-01-10 15:56:41459瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn