2010-12-08 116 views
1

這是我的代碼:錯誤C2440:「參數」:無法從「系統對象:: ^」轉換爲「廉政」

for (q = 0; q < Rows; q++) 
{ 
    for (r = 0; r < Columns; r++) 
    { 
     Array1[q, r] = combo1->Items[r]; 
     Array2[q, r] = combo2->Items[r]; 
    } 
} 

我想從組合框陣列添加項目,但我得到錯誤:

error C2440: 'argument' : cannot convert from 'System::Object ^' to 'int'

這是被添加項目康寶

  for (int m = 0; m < Rows; m++) 
      { 
       array<String^> ^b = Aray1[m]->Split(gcnew array<Char> { ',' }); 
       for each (String ^Column in b) 
       { 
        Combo1->Items->Add(Column); 
       } 
      } 

回答

1

假設你正在使用C++/CLI的代碼。

通過錯誤判斷它看起來像Array1元素鍵入爲int,並且組合框包含的值包裝在ObjecT^中。如果該值是真正公正的int被包裹在一個Object^,那麼你只需要拆箱

Array1[q,r] = safe_cast<int>(combo1->Items[r]); 
Array2[q,r] = safe_cast<int>(combo2->Items[r]); 

這將下降,如果Object^實際上是包裹另一種類型除了int

+0

現在我得到這個錯誤「指定演員表無效。「用代碼Array1 [q,r] = safe_cast (combo1-> Items [r]); – 2010-12-08 22:25:01

相關問題