日期:2014-05-19  浏览次数:20926 次

很灵异的编译错误,对拆箱比较熟悉的请来拿分吧
在代码中有一个结构体
struct   stru
{
public   int   X;
public   int   Y;
}

为啥这样写
object   o   =   new   stru();
stru   s   =   (stru)o;
s.X   =   1;
s.Y   =   1;
就没有问题,

而这样写
object   o   =   new   stru();
((stru)o).X   =   1;
((stru)o).Y   =   1;
就编译不通过呢?

期待高人的解释

------解决方案--------------------
因为struct 是值类型