ошибка C2440: «аргумент»: невозможно преобразовать из «System :: Object ^» в «int» - PullRequest
1 голос
/ 09 декабря 2010

это мой код:

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 Ответ

1 голос
/ 09 декабря 2010

Предполагая, что вы используете 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

...