我已經做了一些關於這方面的研究,這似乎很不可能,但沒有一個答案已經足夠具體到我的問題。我目前有一個Stack<object>
,我推送多個不同類型的對象。在我推動它們之前,我將它們裝箱到object
,以便它們接受它們。是否有任何可能的方法自動拆箱的對象到原來的unboxed類型?自動拆箱的對象
自動拆箱的對象
回答
有沒有Automagic的方法來做到這一點。
嘗試這雖然
var objT = (T)Convert.ChangeType(obj, typeof(T));
var tuple = new Tuple<object, Type>(someObject, typeof(someObject));
stack.Push(tuple);
事情是'T'是未知的 – jduncanator
@jduncanator你可能想把一個'Tuple'推到Stack'instaed。 'Stack
我正在考慮這個,但我想我會問,然後我做了一個假設。通用方法會有幫助嗎? – jduncanator
您可以使用擴展方法OfType<OneOfTheTypes>()
只得到澆鑄成正確類型的特定類型的對象。
您無法使用編譯時類型的對象具有的運行時類型的兼容類型自動將對象轉換爲變量。
變量的類型是編譯時類型,如果編譯器不知道內容是編譯時該類型的內容。編譯器不知道堆棧中每個對象實際具有哪種運行時類型。您必須向編譯器(通過強制轉換)承諾運行時類型實際上與編譯時類型相匹配。
但坦率地說。這種「檢查我有什麼類型」是一種不良設計的典型氣味。如果您有相似類型的對象或對不同類型的對象使用不同類型的存儲,請嘗試使用通用基類來設計您的代碼。
它是一個Flash ByteCode分析器,可以將不同類型的數據從一個類型對象堆棧中彈出或彈出。我需要能夠在彈出後以原始類型獲得它們,以便讀取它們的屬性。 – jduncanator
- 1. 自動拆箱
- 2. 使用對象在java中自動裝箱拆箱使用對象
- 3. Java的自動裝箱/拆箱wierdness
- 4. Scalaz拆箱標籤類型不會自動拆箱
- 5. 自動拆箱Scala的模式匹配
- 6. 開箱錯誤拆包地圖對象
- 7. Objective-C使用LLVM自動拆箱4
- 8. 如何拆箱一個C#對象動態類型
- 9. Scala和抽象型 「拆箱」
- 10. 在性能,隱式(自動)拆箱或顯式拆箱方面哪個更好?
- 11. 自動裝箱和拆箱操作員超載
- 12. 拆箱動態類型
- 13. 開箱對象
- 14. 拆箱vagrant箱失敗
- 15. Java 6與Java 7之間的自動拆箱差異
- 16. 如何在自己的課堂中實現裝箱和拆箱?
- 17. Monad「拆箱」
- 18. 拆箱功能
- 19. 拆箱問題
- 20. 拆箱後更改結構字段到對象
- 21. 選項嚴格和拆箱對象到字符串
- 22. C中的裝箱和拆箱#
- 23. 裝箱和拆箱的概念
- 24. Java:自動拆箱與鑄造相結合
- 25. 拆分RLE對象
- 26. 拆箱龍在Java
- 27. 拳擊與拆箱
- 28. 拆箱值類型
- 29. 拳擊與拆箱
- 30. 拆分的對象屬性
「自動」是什麼意思?沒有任何代碼?我認爲這是不可能的。 –
我的意思是,這樣的事情......'(thingy.GetType())thingy' – jduncanator
好,'(thingy.GetType())thingy'類型的thingy'是對象,所以你正在將'Object'轉換爲'對象' – Mayank