1
我正在準備考試,並且偶然發現有關拳擊/拆箱的問題。 我一直覺得,如果我框比方說,一個浮動是這樣的:將盒裝浮法拆箱到int
float x = 4.5f;
object o = x;
如果想要一個值類型變量從o
回來了,我必須把它拆箱爲float。
float y = (float)o;
這應該拋出一個異常:
如果我想保存在o
值轉換爲int我必須先拆箱它和後來投這樣的:
int z = (int)(float)o;
現在我偶然發現的問題:
假設你有一個方法像這樣:
public static void FloorTemperature(float degrees) {
object degreesRef = degrees;
`xxx`
Console.WriteLine(result);
}
您需要確保應用程序不會在無效轉換時拋出異常。你應該插入哪個代碼段爲xxx
(我認爲無效的轉換是無效的轉換異常):
(一)int result = (int)degreesRef;
(B)int result = (int)(float)degreesRef;
正確的解決方法是(A),但對我來說(B)看起來正確。所以你能開導我嗎?我錯過了什麼?
親切的問候
那麼你有沒有嘗試驗證'a'是否有效?這看起來很容易測試,實際上它看起來應該是'b'。 –
不幸的是,我沒有在我的機器上安裝Visual Studio:/ – user3596113
因此,請等到您*在適合的機器上。或者使用csharppad.com。或者,如果您使用的機器有.NET但不是VS,請使用記事本和csc。 –