我有一個對象[]數組,其中包含一些內置類型的混合,如Int/Byte/String,並且我試圖在運行時將對象轉換爲正確的類型,然後將該已轉換的數據交給第三個具有Write(內置類型重載)方法的第三方庫。我想我可以做Obj.Write((表達式產生System.Type)objArg),但它錯誤在我身上。不能做(表達式產生System.Type)對象轉換?
這裏是一個更好的解釋了它一個代碼示例:
object testData = (int)42;
int final = (GetAType())testData;
private Type GetAType()
{
return typeof(Int32);
}
有什麼建議? 替代方法來實現這一點也會有所幫助。
對於某些情況下,這是我的原始問題。 第三方庫中有一堆針對不同類型的重載。
3rdPartyLibrary.Write(bool source)
3rdPartyLibrary.Write(int16 source)
3rdPartyLibrary.Write(int32 source)
3rdPartyLibrary.Write(string source)
我想3rdPartyLibrary之間和我的代碼
Such that I can have
Object[int32]
Object[int16]
Object[string]
Object[int32]
我試圖做一些事情看似簡單,像這樣的(僞編碼)
其餘抽象層loop Object[]
{
3rdPartyLibrary.Write((object[i].GetType()) object[i])
}
我一直在閱讀所有類似的冠冕堂皇的問題,看起來這可能是不可能的?
「我有一個Object []數組,它包含內建類型的一些混合,如int /字節/字符串」 - 有你的問題! – 2012-01-28 01:42:29
Doh!這個問題的一個形式被問了很多次,但我找不到一個單一的重複。我吮吸。 – 2012-01-28 01:47:50
'int final =(GetAType())testData;'編譯? – 2012-01-28 01:48:30