我想填充值類型併爲其賦予隱式轉換。不幸的是這樣做會停止表現得像引用類型即使值類型的行爲類似於使用裝箱和隱式轉換的引用類型
MyTnt i1 = 3; //MyValue has a field value = 3
MyInt i2 = 5; //value = 5
i1 = i2; //both i1 and i2 = 5
i2 = 4; //i1 = 5, i2 = 4; should be i1 = i2 = 4;
是否有可能使用隱式轉換,因此如預期的行爲在這裏寫拳擊?
引用類型的行爲方式爲你的例子一樣。 – Lee
MyInt是int的包裝,它有隱式轉換。我剛剛測試了上面寫的內容,我可以告訴你,它不像我說的那樣對待它們。 – wjtk4444
你的期望是錯誤的。寫一個與封裝結構無關的類。寫上類似的代碼。它會以同樣的方式行事。編寫'i1 = i2;'不是永久鏈接這些變量。唯一發生的事情是,一段時間後,這些變量引用同一個對象。爲i2分配不同的值會改變現實,並且與i1無關。 –