Какие значения безопасно использовать для инициализации статических и константных членов определения класса? - PullRequest
0 голосов
/ 19 мая 2011

Другими словами, этот вопрос можно прочитать следующим образом: "Каков порядок объявлений и определений переменных во время компиляции?"

В настоящий момент я не могу вспомнить конкретные примеры, но я знаю, что у меня возникли проблемы при инициализации const и статических значений в моих определениях классов из-за объявления этих значений, происходящих не по порядку.

Я знаю, что могу создавать объекты при объявлении статических константных членов, например:

public class ConstsWithNewObjects {
    public static const DEFINED_NOW_2:Object = {something:"Defined!"};
    public static const DEFINED_NOW_3:Object = new CustomObject("Defined!");
}

Но, если я получаю доступ к одному из этих членов из другого статического или константного значения, я представляю возникающие условия гонки, например:

public class ConstsWithOtherConsts {
    public static const DEFINED_NOW_1:Object = DEFINED_NOW_3; // Does this exist, yet?
}

1 Ответ

1 голос
/ 19 мая 2011

ActoinScript Hero Джек Данстан подробно рассказал об этой теме в своем блоге: Class Bootup Part 2 .

Независимо от выводов Джека; Я бы порекомендовал, для здравомыслия ваших читателей; чтобы код статического инициализатора был чистым и максимально простым - не забывайте, что статические поля могут вызывать статические методы; Вы также можете использовать статический метод инициализации класса .

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