[問題] 物件轉型別(大轉小)的損失?
當浮點數大->小作型別強制轉換時,我們知道損失了小數點後的值:
float f = 1.2L;
int i = (int)f;
而所有的類別/物件都是從object繼承而來的,
string s = "ABC";
object o = (object)s;
string s1 = (string)o;
s->s1中間,損失的又是什麼呢?
ps.
我曾質疑為何compiler要允許物件大轉小呢?
後來看書,寫說:
人->我,所以我=人,人=我
只是不清楚轉換間的損失是啥罷了...
在猜,是否繼承的物件之延伸的變數/methods被隱住了,
但實質位址並沒有消失
因此物件的大小轉換,其實只是遮住而非消滅多出來的東西?!
因為對於ref type的物件而言,
等號(=)是新物件的r-value指向同一個物件heap位址
並沒有作真正的資料異動,因此轉換回來沒有損失。
不知我想得對不對?!
--
貫徹分享精神
我為人人,人人為我
※ 編輯: tomex 來自: 60.248.89.46 (05/25 19:57)
推
140.115.205.46 05/25, , 1F
140.115.205.46 05/25, 1F
→
140.115.205.46 05/25, , 2F
140.115.205.46 05/25, 2F
→
140.115.205.46 05/25, , 3F
140.115.205.46 05/25, 3F
→
140.115.205.46 05/25, , 4F
140.115.205.46 05/25, 4F
推
211.74.98.216 05/26, , 5F
211.74.98.216 05/26, 5F
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章