C#提供了两个获取大小的方法:
1.使用sizeof运算符。但sizeof只有对int,byte等预定义值类型有效。
2.使用System.Runtime.InteropServices.Marshal.SizeOf静态方法。此方法对任何值类型的实例有效。
除此之外,引用类型的内存是分配在堆上面的,不管是C,C++还是C#,好像都只能在堆上面实例化对象,删除对象。尤其是C#,连实例化/删除对象都有人代劳了。
如果你在堆上有你需要的信息,并且要把这段信息写入到磁盘等设备时,这时你需要对这个对象进行拆箱处理。这时你才获取到你拆箱后的对象实例的大小。