如何确定 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中文网其他相关文章!