Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции C# Часть1 A5.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Структура программы

Сразу предупредим – в данной главе нет исчерпывающего изложения соответствующей информации. Целью главы является выделение основных структурных свойств программы на языке C#. Постепенно Вы будете узнавать другие подробности на эту тему.

Напомним, что главной структурной единицей программы на языке C++ была функция, а программа состояла из множества таких функций, среди которых обязательно должна быть функция main. Кроме этого на верхнем уровне можно было описывать глобальные переменные и собственные типы данных, такие как struct.

Идея создания программистом собственных типов данных в языке C# приобрела центральное место (как и в других объектно-ориентированных языках). По-прежнему это можно делать с помощью структурных типов struct. Однако еще более полноценную реализацию понятия тип удалось реализовать с помощью концепции классов.

Такие классы, как Console и Convert называются встроенными только по той причине, что они написаны другими программистами и включены в стандартный набор классов. Однако программист может создавать свои собственные классы, обеспечивая их необходимыми ему функциями-методами.

В языке C# самостоятельных функций вообще нет – есть только методы классов, а вся программа – это просто несколько классов, описанных один за другим. Кроме того, пропали глобальные переменные – как убедились разработчики, глобальные переменные привносят в программу много опасных проблем.

Есть еще один важный вопрос: если структура программы однородна и представляет множество классов, то с какого места начинается выполнение программы. Для этого в одном (и только в одном) из классов обязательно доложен быть определен метод Main (с большой буквы!). Таким образом, ошибкой будет и отсутствие метода Main и наличие нескольких методов Main.

Наша первая программа удовлетворяет перечисленным требованиям. Вся она состоит из единственного класса Program. В этом классе содержится только один метод, и он называется Main – как говорится минимальный джентльменский набор.

Ответ на вопрос «что означает слово static в заголовке метода Main» вы узнаете позже, а на вопрос «зачем нужны параметры в методе Main» мы в нашем кратком курсе отвечать не будем – нельзя объять … сами знаете что.

Еще вопросы есть? По-крайней мере еще один важный вопрос должен остаться – что означает конструкция namespace в нашей программе.

Собственные пространства имен

Мы уже говорили, что пространства имен – это способ группировки классов. А если речь идет о классах, разработанных самим программистом? Здесь также используются пространства имен. Достаточно окружить несколько описаний классов конструкцией namespace, и они уже образуют новое пространство имен:

namespace AAA

{ <описание класса>

. . .

<описание класса>

}

Пространство имен может группировать классы, находящиеся в разных исходных файлах. И, наоборот, в одном исходном файле могут содержаться классы из разных пространств имен. Ниже соответствующий пример.

Файл x.cs

Файл y.cs

namespace AAA

{ class A {. . .}

class B {. . .}

}

namespace BBB

{ class C {. . .}

class D {. . .}

}

namespace BBB

{ class E {. . .}

class F {. . .}

}

namespace AAA

{ class G {. . .}

class H {. . .}

}