2016-11-17 41 views
0

我正在閱讀約passing by reference in C#,雖然這樣做,我讀了以下使我困惑的句子。通過參考值/值 - 拳擊/拆箱關係

「當通過引用傳遞時,沒有值類型的裝箱」。

雖然我知道什麼是拳擊,我想我錯過了這句話中包含的信息的實際深度。我知道它基本上說沒有拳擊發生,當然也不拆箱,但我可以從中得出什麼其他結論?無論如何與拳擊/拆箱有關的價值/參考傳遞?

+2

拳擊與通過引用傳遞值類型並沒有關係,因爲拳擊很慢。我猜這本書的作者想要顯示按值傳遞引用類型(當你有引用時你可以改變對象屬性但不引用它自己)和通過ref傳遞值類型之間的區別(行爲將類似於傳遞引用類型,但你不會慢拳) – csharpfolk

+2

我不同意這是一個重複的問題。他們在談論同樣的事情,但是對於解決OP問題的dup卻沒有給出答案。投票重新開放。 – itsme86

+1

[這個答案](http://stackoverflow.com/a/4807391/1141432)更直接關係到OP的問題。 – itsme86

回答

0

如果您通過引用傳遞值類型,則不涉及裝箱和拆箱。正如在C#中所說的,它有內存別名。你甚至可以在Linqpad中試用它。在IL代碼中顯示它之後,你會看到沒有涉及到裝箱/取消裝箱。