struct CurrencyStruct
{
public long Dollars;
public byte Cents;
public override string ToString()
{
return "$" + Dollars + "." + Cents;
}
}
在MAIN方法中查看起结构的大小 得到16;不是9的解释!
32位机子上是4字节作为一个DWORD的 ,它擅长在4个字节上获取数据,从内存中获取DWORD是最高效的方法,跨越DWORD的边界存取通常会降低硬件的性能。所以.NET数据库会把某些数据类型加上一些空间,使它们占用的内存是4的倍数。
long (8)+byte(1)=9字节。它加上4字节后是13因为要是4的倍数 所以只能取16??
上面的解释还是有问题,应该是这个方法ToString()还是占用了一定的空间。所以BYTE加3字节 而方法也占用了4个字节的内存。
希望得到大家的指点?
<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>