2015-11-20 126 views
0

我需要一些幫助,希望它是可行的。傳遞一個類作爲變量C#

我想通過一個類作爲C#中的變量。

這是我的代碼,所以你可以看到什麼,我試圖做的:

object shClass; 
switch ((cbxType.SelectedItem as ComboBoxItem).Value) 
{ 
    case "articles": 
      shClass = ArticlesClass; 
      break; 
    case "topics": 
      shClass = TopicsClass; 
      break; 
} 
serializer.Deserialize<shClass>(response); 

此代碼不能正常工作,這只是給你一個想法是什麼,我需要。這可能嗎?

我希望你能幫助我。謝謝。

+1

您無法通過模板參數通過變量傳遞類型。模板在編譯時生成。根據您使用的序列化程序,您可能可以使用'value.GetType()'來反序列化該值。 –

+0

這就是我的想法。謝謝。 – caesar

+0

它可以完成http://stackoverflow.com/questions/232535/how-to-use-reflection-to-call-generic-method –

回答

0

爲什麼你需要把它放在開關外?您可以嘗試將其放入內部

switch ((cbxType.SelectedItem as ComboBoxItem).Value) 
{ 
    case "articles": 
      serializer.Deserialize<ArticlesClass>(response); 
      break; 
    case "topics": 
      serializer.Deserialize<TopicsClass>(response); 
      break; 
} 
+0

只是想嘗試一些不同的東西。您的解決方案是我的其他選擇。 – caesar