Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_for_Beginners.doc
Скачиваний:
28
Добавлен:
23.11.2019
Размер:
2.4 Mб
Скачать

Структура программы и ход выполнения

При создании приложения C# нужно выбрать его тип: консольное приложение или приложение Windows Forms. Кроме различий в типе пользовательского интерфейса, они могут также отличаться ходом своего выполнения.

Приложения Windows Forms36

В типичном приложении Windows с графическим пользовательским интерфейсом большая часть действий после первоначального запуска происходит в ответ на действия пользователя, таких как перемещение мыши, выбор пункта меню или ввод текста. Такие действия воспринимаются windows-приложением как некоторые события и они могут быть связаны с вызовом особых методов, называемых обработчиками событий. Практически все, что делает программа Windows инициируется обработчиками событий. При отсутствии событий программа бездействует.

В отличие от процедурных языков программирования, таких как COBOL, BASIC или FORTRAN, здесь используется событийно управляемая модель. Наиболее фундаментальное различие в событийно управляемом программировании состоит в том, что программное обеспечение и сама операционная система вызывают методы обработчиков событий в приложении пользователя. Неизвестно, какие методы они вызовут. Программист может решить, какие события обрабатывать в приложении. Но, если возникновение события зависит от пользователя (например, нажатие кнопки или перемещение курсора мышки), то программист не должен рассчитывать на какой-либо порядок, в котором такие события будут происходить.

В типичном приложении Windows поля, массивы и коллекции, хранящие сведения о состоянии приложения, находятся в основном классе формы, имеющем по умолчанию имя Form1. В области действия класса эти члены доступны из всех методов обработчиков событий, реализованных в том же классе формы. При возникновении какого-либо события происходит вызов соответствующего обработчика этого события, если он описан. Далее обработчик может произвести действия над доступными ему данными в приложении. После завершения работы обработчика приложение вернется в состояние ожидания. Например, форма может содержать элемент TextBox и кнопку Обновить. Если у кнопки описан обработчик события Click, то при ее нажатии будет вызван этот обработчик. К примеру, обработчик может взять текст из TextBox и затем добавить его в какой-либо список строк, хранящийся в области действия класса. После этого приложение вернется в состояние ожидания. В ответ на пользовательский ввод другие обработчики событий могут осуществлять иные виды действий с тем же списком строк.

Пользовательские классы могут отправлять и получать события, используя те же механизмы, что и Windows Forms.

Console Applications

In many console applications, the flow of execution proceeds from one statement to the next until the end of the program is reached and the application terminates. Of course, this isn't always the case because a console application can still be driven by keyboard events and system events that are generated by objects such as timers and network connections. Simple console applications often consist of only one class, the one that contains the Main method. However, more complex applications may contain any number of classes.

Namespaces

Namespaces are a way of organizing the various types that occur in a C# program. It is somewhat similar in concept to a folder in a computer file system. Like folders, namespaces enable classes to have a unique fully-qualified name. A C# program contains one or more namespaces, and each namespace is either defined by you the programmer, or defined as part of a previously written class library.

For example, the namespace System includes the Console class, a class that contains methods for reading and writing to the console window. The System namespace also contains a number of other namespaces, such as System.IO and System.Collections. The .NET Framework alone has more than eighty namespaces, each with up to thousands of classes: namespaces are used to minimize the confusion that might be caused between similarly named types and methods.

If you write a class outside of a namespace declaration, the compiler will supply a default namespace for that class.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]