Важно помнить, что существует разница между явным приведением и использованием ключевого слова as
. Кастинг выдает ошибку, когда он терпит неудачу, тогда как ключевое слово as
этого не делает (просто возвращает ноль).
// a casting error
try {
var number:int = 666;
var urlreq:URLRequest = URLRequest( number );
} catch(e:TypeError) {
// TypeError: Error #1034: Type Coercion failed: cannot
// convert 666 to flash.net.URLRequest.
trace(e);
}
Принимая во внимание, что ключевое слово as
не срабатывает молча:
var number:int = 666;
var urlreq:URLRequest = number as URLRequest;
trace(urlreq); // prints null to the debug pane
Лично я учитываю это поведение при принятии решения о методе использования. Как правило, я бы рекомендовал явное приведение, поскольку вы будете точно знать, как / когда произойдет сбой приведения. Тем не менее, часто вы можете молча потерпеть неудачу и продолжить.