Flex3 유형 주조
-
05-07-2019 - |
문제
Flex 3에서 두 가지 유형 주조 방법 사이의 실제 차이점을 아는 사람이 있습니까?
var myObject1:MyObject = variable as MyObject;
var myObject2:MyObject = MyObject(variable);
유형 캐스트가 실패 할 때 오류가 발생하기 때문에 두 번째 방법을 사용하는 것이 좋습니다. 첫 번째 방법은 NULL을 반환합니다. 그러나 다른 차이점이 있습니까? 아마도 첫 번째 방법을 사용하는 것이 어떤 장점이 있습니까?
해결책
두 번째 유형의 캐스팅은 최상위에 대한 동작이 다릅니다 (http://livedocs.adobe.com/flex/2/langref/) 유형, 예를 들어 배열 (OBJ)은 당신이 묘사하는 간단한 방식으로 캐스팅되지 않습니다. OBJ가 배열이더라도 가능한 경우 OBJ에서 새로운 배열을 만듭니다.
나는 이것이 예기치 않은 행동을 일으킬 때의 시간이 드물게 될 것이라고 확신하지만, 나는 항상 이런 이유로 "" "" "사용한다"고 확신한다. 내가한다면 의미가 있습니다
int(str)
나는 그것이 "내가 약속한다"는 단어에 있지 않은 단어의 "전환 시도"감각에서 캐스트라는 것을 알고있다.
REF : 이것에 대해 확인했습니다 http://raghuonflex.wordpress.com/2007/07/27/casting-vs-s-as-operator/
다른 팁
- 그만큼
as
메소드 리턴null
캐스트가 실패하면. - 그만큼
()
캐스트가 실패하면 메소드가 발생하고 오류가 발생합니다.
값의 경우 variable
호환되지 않습니다 MyObject
, myObject1
포함됩니다 null
그리고 당신은 a null
포인터 오류 (1009 : 널 객체 참조의 속성 또는 방법에 액세스 할 수 없습니다.) 프로그램에 액세스하려고 할 때 어딘가에. 마치 당신이 마치 주조하는 것처럼 MyObject(variable)
구문, 유형 강요 오류가 발생합니다 (1034 : 유형 강요 실패 : _로 _로 변환 할 수 없습니다.) 같은 줄 자체에서 - 나중에 1009를 얻고 무엇이 잘못되었는지 궁금해하는 것보다 더 도움이됩니다.
나는이 사이트의 어딘가에 그것을 읽은 것 같아요 as
보다 약간 빠릅니다 ()
, 그러나 나는 다시 질문을 찾을 수 없습니다.
이 질문이 여러 번 묻는 것 외에도 더 심층적 인 대답을 찾을 수 있습니다. 여기.
나는 최근에 매우 유용한 것을 발견했다 []
태그 stackoverFlow에서 검색 할 때 지정된 태그가있는 질문에서만 검색 할 수 있습니다. 그래서 당신은 같은 검색을 할 수 있습니다 ActionScript-3] 대 캐스트로. 여기에는 더 많은 검색 팁이 있습니다. https://stackoverflow.com/search.
그리고 아니요; 성능에 대한 질문을 찾을 수없고 검색 방법에 대한 글을 쓸 수 있다는 아이러니는 나에게 손실되지 않습니다.)
나는 주조가 실패하고 ()가 오류를 던지면 기본 클래스를 되돌리고 널 null이 아니라고 생각합니다.