Re: [問題] 為何還有結構存在?

看板C_Sharp (C#)作者 (tomex_ou)時間20年前 (2005/07/11 20:43), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/7 (看更多)
我看到一書「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

203.73.234.149 07/11, , 1F
恩...教科書寫說 struct是輕量級的class
203.73.234.149 07/11, 1F
文章代碼(AID): #12qcbZUj (C_Sharp)
文章代碼(AID): #12qcbZUj (C_Sharp)