|
Программирование >> Программирование с использованием ajax
тем же значением, которое передается конструктору MyDerivedClass в параметре i), так что применяться будет MyBaseClass (int i). Это означает, что MyBaseClass вызываться не будет, поэтому последовательность событий будет выглядеть так, как показывалось перед этим, т.е. необходимым образом. Это ключевое слово можно еще использовать для указания литеральных значений для конструкторов базовых классов, например, в случае применения конструктора по умолчанию класса MyDerivedClass для вызова конструктора не по умолчанию класса MyBaseClass: public class MyDerivedClass : MyBaseClass public MyDerivedClass 0 : base (5) Это приведет к получению следующей последовательности. □ Первым будет выполняться код конструктора System. Ob j ect. Ob j ect. □ Вторым - код конструктора MyBaseClass .MyBaseClass (int i). □ Третьим - код конструктора MyDerivedClass .MyDerivedClass (). Помимо ключевого слова base существует еще одно ключевое слово, которое можно применять в качестве инициализатора конструктора- this. Данное ключевое слово инструктирует отвечающий за создание экземпляров процесс .NET использовать для текущего класса перед вызовом указанного конструктора конструктор не по умолчанию: public class MyDerivedClass : MyBaseClass { public MyDerivedClass О : this (5, 6) public MyDerivedClass(int i, int j) : base(i) В этом случае последовательность будет выглядеть так, как описано ниже. □ Первым будет выполняться код конструктора System. Ob j ect. Ob j ect. □ Вторым - код конструктора MyBaseClass .MyBaseClass (int i). □ Третьим - код конструктора MyDerivedClass .MyDerivedClass (int i, int j). □ Четвертым - код конструктора MyDerivedClass .MyDerivedClass. Единственное ограничение здесь состоит в том, что с помощью инициализатора конструкторов можно указывать только один единственный конструктор. Однако, как было видно в предыдущем примере, на самом деле это не является таким уж серьезным ограничением, поскольку все равно позволяет получать довольно сложные последовательности выполнения. Если для конструктора не указывается никакой инициализатор, компилятор автоматически добавляет инициализатор baseO . Это приводит к получению поведения по умолчанию, которое описывалось ранее в этом раздеяе. Средства объектно-ориентированного программирования, доступные в VS и VCE Из-за того, что ООП является фундаментальной темой в .NET Framework, в VS и VCE для облегчения процесса разработки ООП-приложений предлагается несколько специальных средств. Некоторые из них рассматриваются в настоящем разделе. Окно Class View в главе 2 уже упоминалось о том, что окно Solution Explorer (Проводник решений) делит экранное пространство с еще одним окном, которое называется Class View (Представление классов). Окно Class View отображает иерархию классов в приложении и позволяет сразу просматривать все характеристики используемых классов. На рис. 9.3 показано, как выглядело бы это окно в случае проекта из предыдущего практического занятия. На этом рисунке видно, что данное окно имеет два главных раздела; в нижнем разделе отображаются члены типов. Чтобы увидеть, как это происходит на примере данного проекта, а также, какие еще действия можно выполнять в окне Class View, необходимо отобразить некоторые элементы, которые сейчас являются скрытыми. Чтобы сделать это, отметьте элементы в выпадающем списке Class View Grouping (Группировка представления классов) в верхней части окна Class View, как показано на рис. 9.4. После этого в окне Class View должны стать видимыми все члены, и появится кое-какая дополнительная информация (рис. 9.5). Здесь может использоваться масса различных обозначений, в том числе и значки, перечисленные в табл. 9.3 liniin- I Project References & {) ChOSExOl . -О iMyeaielntertace da IMyBaselnterface2 l£ 5** IMylnterTace i MyBase ♦ a MyClass ♦ MyComplexClass ♦ ui Pfogram <Ш1впЬ)1 ;!3 Class V Puc. 9.3. Внешний вид окна Class View □ Show Base Types Show Project References Show Hidden Types And Members Show Public Members Show Protected Members Show PrtvaU Members Show Other Members Show Inherited Members Puc. 9.4. Изменение настроек окна Class View t; ц ChMf Ktl - Project References J -sJ mjcorlib A -Jt SyUem Л Syjtem Cof Ш -гЛ system Dau Ш -O System Dita DitaSetExtensions Ш -Jt System Kml System>ml linq fo О ChOSExOl Ф ~* iMyetselnterTice IMve jelnterTice? \M IMvIntertice Ш и Mye.je ft. tt МуСИя A Вне Types Proorim Equiislobect; objeOJ % Equais(ob)ed) GetHashCodeO GetTypeO > MembrrsMiSrCloneO ReferrriceEqoalJlobjec objedj ToS<ringO Puc. 9.5. Отображение скрытых элементов и дополнительной информации в окне Class View Таблица 9.3. Возможные значки
Обратите внимание на то, что некоторые из этих значков используются для обозначения определений не только классов, но и других типов, например, структур и перечислений. Еще под ними могут отображаться и другие обозначения, указывающие на уровень доступа (под общедоступными элементами такие обозначения не отображаются). Эти обозначения показаны в табл. 9.4. Таблица 9.4. Обозначения, указывающие на уровень доступа
Для обозначения абстрактных, герметизированных и виртуальных элементов никакие значки не используются. Помимо просмотра этой информации здесь еще можно получать доступ к коду многих элементов. Выполнение двойного щелчка на элементе или щелчка правой кнопкой мыши и выбор в контекстном меню пункта Go То Definition (Перейти к определению) позволяет сразу же осуществлять переход к тому коду в проекте, в котором содержится его определение, если таковой доступен. Если код не доступен, например, как для базовых типов (вроде System.Object), тогда вместо этого предлагается опция Browse Definition (Обзор определений), которая переводит в окно Object Browser (Обзор объектов) (которое будет более подробно описываться в следующем разделе). Все остальные элементы на рис. 9.5 являются ссылками проектов (Project References). Они позволяют просматривать те сборки, на которые ссылаются проекты, а в данном
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |