Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSBasicCourse2ndedPodbelsky / CSBasicCourse2ndedPodbelsky.rtf
Скачиваний:
27
Добавлен:
22.03.2016
Размер:
11.9 Mб
Скачать

1.2. Программа на c#

Формат простейшего определения (иначе декларации или объявления) класса в

C#:

class имя_класса

{поля и методы}

Здесь class – служебное слово. Заключенная в обязательные фигурные скобки

совокупность полей и методов называется телом класса. Среди полей и методов

могут быть статические, относящиеся к классу в целом, и не статические –

определяющие состояния конкретных объектов и действия над этими объектами.

Перед телом класса – находится заголовок объявления класса. Заголовок в

общем случае может иметь более сложную форму, но сейчас её не нужно

рассматривать. Служебное слово class всегда входит в заголовок.

имя_класса - идентификатор, произвольно выбираемый автором класса.

Отметим, что идентификатор

"идентификатор"

в языке C# - это

последовательность букв, цифр и символов подчеркивания, которая не может

начинаться с цифры. В отличие от многих предшествующих языков в

идентификаторах C# можно использовать буквы разных алфавитов, например,

русского или греческого. В языке C# прописная буква отличается от той же самой

строчной. Примеры идентификаторов, наверное, излишни.

Среди методов классов исполнимой программы (приложения) на языке C#

обязательно присутствует статический метод со специальным именем Main. Этот

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

метода Main( ) начинается исполнение ее кода. Исполняющая программу систем

а

неявно (невидимо для программиста) создает единственный объект класса,

представляющего программу, и передает управление коду метода Main( ).

Прежде чем приводить примеры программ, необходимо отметить, что

практически каждая программа на языке C# активно использует классы

библиотеки из .NET Framework. Через библиотечные классы программе доступно

то окружение, в котором она выполняется. Например, класс Console представляет в

программе средства для организации консольного диалога с пользователем.

Применение в программе библиотеки классов предполагает либо создание

объектов классов этой библиотеки, либо обращения к статическим полям и

методам библиотечных классов.

Чтобы применять методы и поля библиотечных классов и создавать их

объекты, необходимо знать состав библиотеки и возможности ее классов.

Библиотека

.NET

настолько

обширна,

что

на

первом

этапе

изучения

программирования на C# придется ограничиться только самыми скромными

сведениями о ней. Cо средствами библиотеки классов будем знакомиться,

используя некоторые из этих средств в небольших иллюстративных программах.

Вначале будем рассматривать программы, в каждой из которых будут применяться

только статические члены некоторых библиотечных классов, и будет только один

класс с единственным методом Main(). При таких ограничениях программирование

на языке C# превращается в процедурное программирование. Основное отличие от

традиционного императивного подхода других процедурных языков – применение

особого синтаксиса для обращения к статическим членам библиотечных классов и

методам объектов, представляющих в программах данные.

Для иллюстрации приведенных общих сведений о программах на C#

рассмотрим программу, которая выводит в консольное окно экрана фразу «Введите

Ваше имя:», считывает имя, набираемое пользователем на клавиатуре, а затем

приветствует пользователя, используя полученное имя.

// 01_01.cs - Первая программа

.

class helloUser

{

static void Main()

{

string name;

System.Console.WriteLine("Введите Ваше имя: ");

name = System.Console.ReadLine();

System.Console.WriteLine("Приветствую Вас, "+name+"!");

}

}

Для тех, кто не знаком с синтаксисом Си, Си++ и производных от них языков,

отметим, что первая строка – однострочный комментарий.

Вторая строка class helloUser – это заголовок определения класса с именем

helloUser. Напомним, что class — служебное слово, а идентификатор helloUser

выбрал автор программы.

Далее в фигурных скобках – тело класса.

В классе helloUser только один метод с заголовком static void Main()

Как уже сказано, служебное слово static

"служебное слово: static"

- это

модификатор метода класса (отличающий его от методов объектов). Служебное

слово void определяет тип, соответствующий особому случаю "отсутствие

значения". Его использование в заголовке означает отсутствие возвращаемого

методом Main() значения. В заголовке каждого метода после его имени в круглых

скобках помещается список параметров (спецификация параметров). В нашем

примере параметры у метода не нужны, но круглые скобки обязательны. Отметим,

что имя Main не является служебным словом языка C#.

Вслед за заголовком в определении каждого метода "метод" помещается его

тело "тело" – заключенная в фигурные скобки последовательность определений,

описаний и операторов. Рассмотрим тело метода Main() в нашем примере.

string name;

– это определение (декларация) строковой переменной с

выбранным программистом именем name. string – служебное слово языка C# -

обозначение предопределенного типа (System.String) для представления строк

.

Подробнее о типах речь пойдет позже.

Для вывода информации в консольное окно используется оператор:

System.Console.WriteLine(“Введите Ваше имя: ”);

Это обращение к статическому методу WriteLine() библиотечного класса

Сonsole,

представляющего

в

программе

консоль.

System

обозначение

пространства имен (namespace), к которому отнесен класс Console. (О

пространствах имён – чуть позже в § 1.3)

Метод WriteLine() класса Console выводит значение своего аргумента в

консольное окно. У этого метода нет возвращаемого значения, но есть аргумент. В

рассматриваемом обращении к методу WriteLine() аргументом служит строковая

константа “Введите Ваше имя: ”. Ее значение – последовательность символов,

размещенная между кавычек. Именно это сообщение в качестве “приглашения”

увидит пользователь в консольном окне при выполнении программы.

Текст с приглашением и последующим ответом пользователя для нашей

программы могут иметь, например, такой вид:

Введите Ваше имя:

Тимофей<ENTER>

Здесь <ENTER> - условное обозначение (добавленное на бумаге, но

отсутствующее на консольном экране) нажатия пользователем клавиши ENTER.

Когда пользователь наберет на клавиатуре некоторое имя (некоторый текст) и

нажмет клавишу ENTER, то будут выполнены действия, соответствующие

оператору

name = System.Console.ReadLine();

Здесь вначале вызывается метод ReadLine() класса Console из пространства

имен System. Метод ReadLine() не имеет аргументов, но у него есть возвращаемое

значение – строка символов, прочитанная из стандартного входного потока

консоли. В нашем примере возвращаемое значение – строка “Тимофей”.

Обратите внимание, что метод ReadLine() выполнится только после нажати

я

клавиши ENTER. До тех пор пользователь может вносить в набираемый текст

любые исправления и изменения.

В рассматриваемом операторе слева от знака операции присваивания =

находится имя name той переменной, которой будет присвоено полученное от

консоли значение. После приведенного выше диалога значением name будет

"Тимофей".

Следующий оператор содержит обращение к уже знакомому методу:

System.Console.WriteLine(“Приветствую Вас,”

+name+

!”);

В качестве аргумента используется конкатенация "конкатенация" (сцепление,

соединение) трех строк:

строковой константы “Приветствую Вас, ”;

строковой переменной с именем name;

строковой константы “!”.

В качестве обозначения операции конкатенации строк используется символ +.

(Обратите внимание, что в выражениях с арифметическими операндами знак +

означает операцию сложения. Эта особенность операций по-разному выполняться

для разных типов операндов называется полиморфизмом

"полиморфизм" .

Полиморфизм и его формы мы еще рассмотрим подробнее.). При конкатенации в

нашем примере значения строковых констант ”присоединяются” к значению

переменной с именем name.

Таким образом, результат выполнения программы будет таким:

Введите Ваше имя:

Тимофей<ENTER>

Приветствую Вас, Тимофей!

Для продолжения нажмите любую клавишу . . .

Последнюю фразу добавляет среда исполнения программ при завершении

консольного приложения. Нажатие любой клавиши приводит к закрыти

ю

консольного окна. Если приложение выполняется вне интегрированной среды, то

есть из консольной строки, то фраза "Для продолжения нажмите любую клавишу"

будет отсутствовать.

Соседние файлы в папке CSBasicCourse2ndedPodbelsky