作者tomex (tomex_ou)
看板C_Sharp
标题Re: [问题] 为何还有结构存在?
时间Mon Jul 11 20:58:30 2005
我看到一书「Windows Forms Programming using C#」812页中写道
struct与class在记忆体中的不同:
struct vInt
{
pubilc int data;
}
vInt v1 = new vInt();
vInt v2 = new vInt();
v1.data = 5;
v2 = v1;
v1.data = 7 // v2.data = 5 (不变)
但class却不同:
class rInt
{
pubilc int data;
}
rInt r1 = new rInt();
rInt r2 = new rInt();
r1.data = 5;
r2 = r1;
r1.data = 7 // r2.data = 7 (跟着改变)
以上是因为struct属於数值型别,其l-value是"值"而非"址"!
这种特性适合value-type的int.
因为若用class代替struct,很容易让值被更换掉哩!
--
贯彻分享精神
我为人人,人人为我
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.89.46
1F:推 liunate:恩...教科书写说 struct是轻量级的class 203.73.234.149 07/11