2012-10-28 45 views
1

我需要在通過串口接收數據的後臺工作器的工作過程中返回字符串的四維數組。將系統::對象轉換爲字符串數組

在後臺工作:

array<String^>^ Received = gcnew array<String^>(4); 
    backgroundWorker1->ReportProgress(10,Received); 

在報告進展情況:

private: System::Void backgroundWorker1_ProgressChanged(System::Object^ sender, System::ComponentModel::ProgressChangedEventArgs^ e) 
{ 
    array<String^>^ Received2 = gcnew array<String^>(4); 
    Received2 =(e->UserState); 
} 

我越來越:

錯誤C2440: '=':不能從「系統轉換::對象^'到'cli :: array'

這不是一個驚喜,但如何轉換和分配UserStatestring array

回答

0

您需要的對象句柄強制轉換爲數組句柄,然後檢查是否有nullptr,看看投成功e.g:

array<String^>^ Received2 = dynamic_cast<array<String^>^>(e->UserState); 
if (Received2 != nullptr) 
{ 
    // Cast was successful, safe to use Received2. 
} 
else 
{ 
    // Cast failed, do not use Received2. 
}