错误C2440:'参数':无法从'System :: Object ^'转换为'int'

时间:2010-12-08 22:14:22

标签: visual-studio-2005 c++-cli

这是我的代码:

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

我想从组合框中添加数组中的项目,但我收到错误:

  

错误C2440:'参数':无法从'System :: Object ^'转换为'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 个答案:

答案 0 :(得分:1)

假设您使用的是C ++ / CLI。

根据错误判断,Array1元素的类型为int,组合框包含ObjecT^中包含的值。如果该值真的只是intObject^包裹,那么您只需要取消装箱

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

如果Object^实际上包裹int

之外的其他类型,则会失败