개체 목록을 X ++에 저장하려고합니다. msdn에서 배열과 컨테이너가 Object를 저장할 수 없다는 것을 읽었으므로 유일한 옵션은 Collection의 목록을 만드는 것입니다. 다음 코드를 작성하여 Collection = new List(Types::AnyType);
및 Collection = new List(Types::Classes);
을 사용해 보았지만 둘 다 작동하지 않습니다. 다음 작업에서 실수를 저 지르는지 확인하십시오.개체 모음
static void TestList(Args _args)
{
List Collection;
ListIterator iter;
anytype iVar, sVar, oVar;
PlmSizeRange PlmSizeRange;
;
Collection = new List(Types::AnyType);
iVar = 1;
sVar = "abc";
oVar = PlmSizeRange;
Collection.addEnd(iVar);
Collection.addEnd(sVar);
Collection.addEnd(oVar);
iter = new ListIterator(Collection);
while (iter.more())
{
info(any2str(iter.value()));
iter.next();
}
}
는 또한, 우리는 몇 가지 변수를 캐스트 또는 anyType에 변수에 반대하지 수, 나는 타입 캐스팅이 자동으로이 방식으로 이루어집니다 읽어;
anytype iVar;
iVar = 1;
그러나 실행 중 예상되는 유형이 Anytype이지만 유형이 int 인 오류가 발생합니다.
코멘트 # 1 job2 실행 중 예외 발생 ... 코드 실행 오류 : 변환 함수의 인수 유형이 잘못되었습니다. 스택 추적 (C) \ Jobs \ Job2 - 행 6 –
@BilalSaeed - "iVar = 1"을 주석 처리하고 anytype은 문자열에 바인딩되며 any2str이 작동합니다. –
'any2str'가 제거되었으므로 int에 바인드 된'anytype'에 대해 작동하지 않습니다! –