我知道這樣的問題之前已經被問過了,我懷疑這是可能的,但我只是想讓100%確定它不是。我想將一個變量轉換爲由另一個Type變量表示的類型。在VB.net或C#中(無論哪種語言都無關緊要),我想將變量轉換爲由另一個Type變量表示的類型。下面是樣的代碼,將在C#中需要的一個例子:將變量轉換爲由另一個Type變量表示的類型?
Object castMe = new Foo();
Type castTo = typeof(Foo);
Foo beenCast = (castTo.GetRepresentedType())castMe;
beenCast.MethodInFoo();
...或VB,是這樣的:
Dim castMe As Object = New Foo()
Dim castTo As Type = GetType(Foo)
Dim beenCast As Foo = CType(castMe, castTo.GetRepresentedType())
beenCast.MethodInFoo()
最大的問題顯然是指定的方法將返回類型在運行時用於轉換類型參數,而不是實際的編譯時類型(即CType(castMe, Foo)
)。我不太明白爲什麼你不能這樣做,儘管......當然,運行時轉換錯誤可能會導致,但是當你指定編譯時類型時,你也可以得到它們。如果castMe不是Foo的實例,那麼即使CType(castMe, Foo)
仍會拋出InvalidCastException
。
謝謝;那種通用的方法就是我需要的東西!看到我對這個問題的回答,看看我最終寫的功能。 – Jez 2009-10-10 10:56:56