.NET глазами дельфийца. C# - Статические конструкторы
ОГЛАВЛЕНИЕ
Статические конструкторы
Некоторый семантический аналог статическим конструкторам вDelphi - секция initialize.
К сожалению, вDelphi порядок вызова секций initialize соответствует порядку подключениямодулей. Такая практика может приводить к неожиданным ошибкам - первоначальнорассчитывая на конкретный порядок подключения модулей, можно случайно впроцессе разработки изменить этот порядок и в результате, например, получитьобращение к несуществующему или некорректно инициализированному глобальномуобъекту программы.
C# предоставляет более строгое объектное решение, которое, в частности,позволяет управлять правами доступа:
class A {
static protected A GlobalA;
static A() { GlobalA = new A; }
}
В C# порядок работыстатического конструктора определен только на уровне класса, при наличии женескольких классов со статическими конструкторами порядок их активизации нефиксирован. Такой подход заставляет более тщательно проектировать программу ссамого начала и исключает появление в последующем ошибок, аналогичных описаннойвыше.