문제

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이 아니라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top