首页 / 知识
关于引用类型的c#:sizeof()是否等效?
2023-04-13 03:34:00

sizeof() equivalent for reference types?我正在寻找一种获取引用类型实例大小的方法。 sizeof仅适用于值类型。 这可能吗? 你需要Marshal.SizeOf 编辑:这是针对不安全的代码,但是sizeof()也是如此。 如果您不介意它的准确性不尽如人意,并且出于比较目的,您可以序列化对象并对其进行度量(例如以字节为单位) 编辑(我在发布后一直在思考):因为例如,它比valueof的sizeof复杂一些:引用类型可以具有对其他对象的引用,依此类推...据我所知,没有一种精确且容易的方法的... 最近我有一个类似的问题,想知道C#中Object和LinkedListNode的大小。为了解决该问题,我开发了一个程序,该程序将: 在我的计算机(64位)上,我获得了以下数据:
根据数据,分配数百万个对象的平均大小约为29.2字节。 LinkedListNode对象大约为44.5个字节。此数据说明了两件事: 假设CLR开销和4字节对齐,我估计C#中的Object为28字节,LinkedListNode为44字节。 BTW乔恩·斯凯特(Jon Skeet)在我之前就已经有了上述方法的想法,并在对类似问题的回答中对此进行了说明。 请在下面的链接中参考我的答案。 通过.sos.dll调试器扩展是可能的 找出.net对象的大小 如果可以-序列化它!
当心Marshal.SizeOf用于不安全的代码... 我认为托管代码是不可能的,也许您可??以解释您的问题,也许有另一种解决方法 |
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为PyPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcPython 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Python 多线程死锁问题的巧妙解决
Python 多线程死锁问题的巧妙解决方法,异常,持有,代码,情况,信息,管理,数据,包装,策略,预期,死锁死锁的原理非常简单,用一句话就可以描述完。列举Python面向对象中带双下划线的
列举Python面向对象中带双下划线的特殊方法,信息,代码,培训,对象,属性,方法,实例,字符串,里边,内容,__new__:生成实例__init__:生成实例的属性_使用Python执行系统命令方法
使用Python执行系统命令方法,系统,信息,培训,标准,命令,方法,模块,操作,终端,中文,Python是一款操作简单的编程语言,内置丰富的库,能够很容易的Python 需求分析的方法
Python 需求分析的方法,系统,设计,分析,产品,网站,时间,服务,社会保险,证券,银行,需求分析518方法,简称我要发,具体就是5w1h8c5w+1h属于功能属Python 类的私有属性和方法
Python 类的私有属性和方法,私有化,培训,开头,变量,函数,模块,属性,目的,方法,更多,在Python中,通过单下划线”_”来实现模块级别的私有化,一般关于 Python 配置文件的使用方法
关于 Python 配置文件的使用方法,代码,灵活,项目,名字,培训,模块,程序,方式,内容,用户,很多项目对配置文件的使用做法是:配置文件写在一个或python 粘包解决方法
python 粘包解决方法,数据,数字,网络,报头,培训,长度,字节,内容,格式,详细信息,问题的根源在于,接收端不知道发送端将要传送的字节流的长度,所python中实现字符与ascll码相互转
python中实现字符与ascll码相互转换方法,代码,培训,字符,函数,方法,实例,字符串,本文,以上,更多,在编程中,我们常常会给代码加密。如果是进行