2014-04-15 2 views
0

나는 C++ CLI 일부 C# 코드를 마이그레이션하는거야, 내가 ushortC++ CLI에서 관리 배열을 캐스팅하는 방법은 무엇입니까?

이의 관리되는 배열을 캐스팅해야 할 것은 C# 코드

foreach(ushort v in mo.Properties["ChassisTypes"].Value as ushort[]) 

입니다 그리고 이것은 지금까지

for each(USHORT ^v in (USHORT[] ^) mo.Properties["ChassisTypes"].Value) 
내 시도

불행히도이 오류는 다소 있습니다.

1 IntelliSense : 기대에 ')'

3 인텔리 : 불완전한 유형은

2 인텔리 허용되지 않는 표현이

C++ CLI에 배열의이 종류를 캐스팅하는 적절한 방법은 무엇입니까 클래스 형

이 있어야합니다?

+0

저는 "as"가 dynamic_cast로 해석됩니다. – Ben

+1

'ushort []'=>'배열 ' –

+1

캐스트의 경우'safe_cast <>', 배열의 경우'array ^'입니다. –

답변

2

는 다음과 같은 코드를 시도 할 수 있습니다 : @ 벤 말했듯이 안전을 위해

for each(UInt16 v in (array<UInt16>^)(mo->Properties["ChassisTypes"]->Value)) 
{ 
} 

당신이 dynamic_cast를 사용할 수 있습니다.

array<UInt16>^ chassisTypes = dynamic_cast<array<UInt16>^>(mo->Properties["ChassisTypes"]->Value); 
if (chassisTypes != nullptr) 
    for each(UInt16 v in chassisTypes) 
    { 
    } 
관련 문제