2015-09-14 62 views
2

我有一個非常有用的實用程序方法,它接受任何對象類型並將其作爲XML對象序列化。該方法參數定義爲一個通用的,像這樣我可以使用三元運算符來設置通用方法參數嗎?

public static string Serialize<T>(T value) 

我通常記錄之前發出一個Web服務器請求或響應這種方法,至今已能正常工作在所有情況下對我來說。但是現在我有一個代碼塊中,我可以使用兩種請求的一個對象,所以我想打電話像這樣

Utility.Serialize((addressRequest != null)?addressRequest:billingSiteIDHouseNumberRequest) 

序列化方法,但我不斷收到錯誤消息,指出這些類型不兼容。

我也覺得??運營商應該工作,但唉它也給我一個錯誤。

感謝您的任何解釋。

+5

什麼這兩個對象的類型?它應該是相同的,使三元運算符工作 –

+2

或從第二操作數轉換爲第三,或反之亦然。 –

+2

假設這些是2種不同的對象類型,但派生自同一個類,你*可能*能夠將這兩種類型轉換爲父類型以使其起作用。但是,將其擴展爲'if' /'else'可能會更清楚/可讀。 –

回答

4

假設你有不同的不相關的類型,你需要序列化位加入到三元邏輯:

var result = addressRequest != null 
    ? Utility.Serialize(addressRequest) 
    : Utility.Serialize(billingSiteIDHouseNumberRequest); 
+0

具體取決於'Serialize'是什麼,即使類型是相關的,但可能不相同。 – juharr

+0

戴夫,這是我應該如何編碼它開始,感謝及時的迴應,是的,類型是無關的。 – user2197446

相關問題