Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 94

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 88 89 90 91 92 93 < 94 > 95 96 97 98 99 100 .. 404 >> Следующая


Прн таком подходе мы получаем возможность поместить код, ответственный за обработку параметра int i, в MyBaseciass<int i), подразумевая, что конструктору MyDerivedciass(int i, int j) достанется меньше работы — ему придется обрабатывать только параметр int j. (Подобные рассуждения строятся на основе предположения, что параметр int i в обоих случаях имеет один н тот же смысл, что может и не выполняться, хотя на практике при таком способе оформления обычно выполняется.) C# при необходимости позволяет нам задать именно такой тип поведения.

Для этого требуется просто указать конструктор базового класса в определении конструктора нашего производного класса следующим образом:

public class MyDerivedciass : MyBaseClass

(

public MyDerivedClaaa(int i, int j) : baee(i)

С

)

)

Ключевое слово base указывает .NET, что в процессе создания экземпляра следует использовать конструктор базового класса с сигнатурой, совпадающей с заданной, В данном случае мы задействуем единственный параметр int, поэтому будет вызван MyBaseClass (int i). Конструктор MyBaseClass () не будет вызываться, т. е. последовательность событий будет такой же, как и в последнем примере,— что, собственно, в данном случае и требовалось.

Существует возможность с помощью этого же ключевого слова задаиать литеральные значения для конструкторов базового класса, допустим, применяя конструктор класса MyDerivedciass. использующийся по умолчанию, для вызова конструктора класса MyBaseciasa, использующегося не по умолчанию:

public class MyDerivedClase : MyBaseClass

(

public MyDerivedciass() : base(5)

(

)

)

В этом случае последовательность событий будет иметь такой вид:

? Выполнится конструктор System.Object.Object о.

? Выполнится конструктор MyBaeeClass.MyBaeeClass (int i).

? Выполнится конструктор MyDerivedciass.MyDerivedciassО .

Кроме ключевого слова base, в этом контексте может использоваться еще одно ключевое слово: this. Оно указывает процессу создания экземпляра в .NET на необходимость использовать конструктор не по умолчанию для текущего класса, прежде чем будет вызван указанный конструктор. Например:
Определение классов

191

public class MyDerivedCiass : MyBaseClass

public MyDerivedCiass() t this(5, 6)

<

public MyDerivedCiass (int i, int j) : base(i) (

Это приведет к такой последовательности событий:

? Выполнится конструктор System.Object.ObjectO.

? Выполнится конструктор HyBaseClase .MyBaseClass (int i).

? Выполнится конструктор MyDerivedCiass.MyDerivedCiass (int i, int j).

? Выполнится конструктор MyDerivedClass.MyDerivedCiass о .

Единственным ограничением в данном случае является задание только одного конструктора, использующего ключевые слова base нлн this. На самом деле, как было продемонстрировано в предыдущем примере, это не такое уж серьезное ограничение, поскольку все равно остается возможность конструирования чрезвычайно изощренных последовательностей выполняемых действий.

Мы увидим этот способ в действии немного позже.

Поскольку ООП является основополагающим понятием .NET Framework, то в VS предусмотрены определенные инструменты, облегчающие разработку приложений с использованием ООП, В этом разделе будут рассмотрены некоторые из них.

Инструменты ООП в Visual Studio.NET

Окно Class View

В главе 2 мы видели, что окно Solution Explorer делит экранное пространство с окном Class View (окно просмотра классов, в котором отображается иерархия классов приложения. Кроме того, названное окно позволяет моментально узнать характеристики используемых классов. Существует несколько режимов просмотра этой информации, причем по умолчанию используется режим Sort By Туре (упорадочива-ние по типу). Для проекта, который был взят в качестве примера в предшествующем разделе, это окно будет иметь вид, подобный представленному на рисунке слева.

а {} Ch09?x01

ilexClass El ••*¦<> myBaselnterface 0 myBaseInterface2

El my Interface

Solution Explorer ¦ ¦. jggsVievjJ
192

Глава 9

View- EhU4E*UI

>%'\ T-i-

В окне Class View может использоваться большое количество разнообразных символов, среди которых:

? |jp _ Проект

? О — Пространство имен

? — Класс

.о|

В- U СШЕхО!

в & d№i

а » туваи»

S Sale* and Interfaces i Ш Object a-{j$f myCtau

' Q Saset and Interface;

Э myfiaie

0 Be»* and Interface*

& Object amyComolexCIei*

' В 8“®* **• Interfaces S 'S* туОаи

I a Bases and Interfaces 0 mySase

0 ^1} Bases and Interfaces ffl-^ Object Й-?° mylnterface

t

0 Bases and Interfaces Object *-o myOascInterface S-^ Bases and Interfaces ] S Object 0 2° my6afe[nterfece2 B'^{ Bases and Interfaces Object

S *‘0 myeasoInterface ! 0 Base* and Interfaces

j Object

S'5° myea»lnterface2 S Bases and Interfaces

! Й ^ Object a 5° my Interface

В-Л? Bases and Interface*

И ^ Objett S *0 myBafelnterface

Й-^f Sates and Interface* j Й-Л* Object Й-?° myeaselnterfacel Й ^ Bases and Interfaces 3 Object

? *-o — Интерфейс

Предыдущая << 1 .. 88 89 90 91 92 93 < 94 > 95 96 97 98 99 100 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.