Что это значит -> ClassA (obj as MovieClip) или var var_a: ClassA = new SomeOtherClass () - PullRequest
1 голос
/ 15 ноября 2011

Я действительно путаюсь с такими утверждениями:

Что это значит:

  1. при касте:

    var xyz = ClassA( obj as MovieClip );

  2. при объявлении / определении:

    var xyz:ClassA = new SomeOtherClass();

Я имею в виду, как 2 разных класса используются в одних и тех же утверждениях выше?Возможно ли это из-за наследственных отношений?

Спасибо V.

1 Ответ

3 голосов
/ 15 ноября 2011
var xyz:ClassA = new SomeOtherClass()

xyz объявлен как имеющий тип ClassA, поэтому это назначение будет работать, только если SomeOtherClass является подклассом ClassA.Если нет, то во время компиляции будет выдано сообщение об ошибке.

var xyz = ClassA( obj as MovieClip )

Результатом этого оператора является двойное приведение: сначала объект obj приводится к MovieClip, затем к ClassA.Если какой-либо из этих двух типов не входит в иерархию типов объекта obj, результатом будет null.Если obj не является MovieClip (в этом случае попытка привести null к ClassA приведет к исключению нулевого указателя во время выполнения), ошибки не будет, потому что вы можете присвоить что-либо xyz - тип переменной не указан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...