2012-11-17 61 views
0

我想把我得到的對象,stackVal,並將其轉換爲對象類型堆棧,這是我的代碼,但它不工作,我不知道任何其他方式。如果有人可以幫忙,請不勝感激!將一個對象轉換爲堆棧類型


 object stackVal; 
     Stack<Event> eventStack = new Stack<Event>(); 
     CultureInfo provider = new CultureInfo("fr-FR"); 

      if (phoneAppSer.State.ContainsKey("STACK")) 
      { 
       if (phoneAppSer.State.TryGetValue("STACK", out stackVal)) 
       { 

       eventStack = Convert.ChangeType(stackVal, typeof(EventStack),provider); 

       } 
      } 
+0

什麼是狀態?我會假設它是一個詞典。如果X *最初是* an * Event *(您可以發佈您的Event類的代碼),那麼您應該能夠將對象'stackVal'轉換爲事件(因爲它最初是一個事件)。如果你從這個'State'字典*中得到的東西最初並不是一個事件,那麼你必須創建一個'new Event()',並手動地選擇性地將'stackVal'對象的信息傳遞給這個事件。儘管如此,你必須知道*首先要做什麼*'stackVal'。 – Jason

+1

你怎麼知道它不工作?你有例外嗎?如果是這樣,細節是什麼? – slugster

+0

這是我收到 錯誤\t \t 1無法隱式轉換型「對象」爲「System.Collections.Generic.Stack 」的誤差。存在明確的轉換(你是否缺少演員?) – user1271792

回答

0

StackEvent和通用型堆棧是不一樣的類型。您正嘗試將來自類型爲EventStack的Convert的響應分配給類型爲Stack的變量。編譯器暗示你應該這樣做:

eventStack = (Stack<Event>) Convert.ChangeType(stackVal, typeof(EventStack),provider); 
相關問題