首页 > 后端开发 > C++ > 如何在 C# 中确定对象实例的大小(以字节为单位)?

如何在 C# 中确定对象实例的大小(以字节为单位)?

Susan Sarandon
发布: 2025-01-10 16:11:42
原创
800 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板