C#中如何获取对象实例大小?
答案:2 悬赏:80 手机版
解决时间 2021-03-01 02:38
- 提问者网友:我一贱你就笑
- 2021-02-28 05:09
想获取对象实例的大小,然后申请相应大小的空间。此对象为任意类型,应该如何做?
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-02-28 05:57
有点异想天开了。
C#提供了两个获取大小的方法:
1.使用sizeof运算符。但sizeof只有对int,byte等预定义值类型有效。
2.使用System.Runtime.InteropServices.Marshal.SizeOf静态方法。此方法对任何值类型的实例有效。
除此之外,引用类型的内存是分配在堆上面的,不管是C,C++还是C#,好像都只能在堆上面实例化对象,删除对象。尤其是C#,连实例化/删除对象都有人代劳了。
如果你在堆上有你需要的信息,并且要把这段信息写入到磁盘等设备时,这时你需要对这个对象进行拆箱处理。这时你才获取到你拆箱后的对象实例的大小。
C#提供了两个获取大小的方法:
1.使用sizeof运算符。但sizeof只有对int,byte等预定义值类型有效。
2.使用System.Runtime.InteropServices.Marshal.SizeOf静态方法。此方法对任何值类型的实例有效。
除此之外,引用类型的内存是分配在堆上面的,不管是C,C++还是C#,好像都只能在堆上面实例化对象,删除对象。尤其是C#,连实例化/删除对象都有人代劳了。
如果你在堆上有你需要的信息,并且要把这段信息写入到磁盘等设备时,这时你需要对这个对象进行拆箱处理。这时你才获取到你拆箱后的对象实例的大小。
全部回答
- 1楼网友:神的生死簿
- 2021-02-28 06:58
c#内存由虚拟机分配,你要自己指定内存么?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯