Язык C# (произносится Си шарп) – современный язык объектно-ориентированного программирования, предназначенный для разработки программ и систем программ на базе платформы Microsoft .NET Framework. Этот язык ориентирован как на создание обычных автономных приложений Microsoft Windows, допускающих в том числе взаимодействие со стандартными приложениями Windows, так и на разработку Web-приложений. Важнейшим компонентом платформы .NET Framework является обширная библиотека классов, существенно облегчающая разработку программ. В Приложении 1 приводятся подробные сведения о составе платформы .NET Framework и предоставляемых ею возможностях.
Объектно-ориентированное программирование базируется на понятиях: объект, класс, структура, поля, методы, свойства, события, которые будут вводиться, использоваться и углубляться при решении все более сложных задач.
По сравнению с традиционными алгоритмическими языками объектно-ориентированное программирование существенно расширяет возможности и облегчает разработку сложных программных систем благодаря наличию упомянутой выше библиотеке классов, при использовании которой отпадает необходимость в написании кодов многих типовых алгоритмов.
При решении научно-технических задач алгоритмическая составляющая является весьма существенной. В настоящем пособии вопросам алгоритмизации и изучению базовых приемов программирования уделяется значительное внимание. Начальные сведения по алгоритмизации (понятие алгоритма, свойства алгоритма, типовые структуры алгоритма) см., например, в учебном пособии «Информатика. Информационные технологии». Авторы: Светозарова Г.И., Андреева О.В., Крынецкая Г.С. и др. Изд. Дом МИСиС, 2009. Параллельно рассматриваются и используются и объектные свойства языка и на наглядных примерах демонстрируются предоставляемые ими новые возможности.
Для разработки программ на языке C# на компьютере должно быть установлено средство разработки, в котором содержатся необходимые инструменты разработки, такие как, редактор кода, компиляторы и др. (прил. 1). В данном пособии для выполнения примеров используется средство разработки Microsoft Visual C# 2008 Express Edition (Microsoft Visual C# 2008, экспресс-выпуск).
Для выполнения программ, написанных на языке C#, на компьютере должен быть установлен пакет .NET Framework (см. прил. 1).
Прежде чем перейти к систематическому изложению средств языка, рассмотрим простейший пример программы, написанной на языке C#.
Пример. Переменной r присвоить значение 3 и вывести значение r на экран (консоль, Console).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int r = 3;
Console.WriteLine(r);
Console.ReadKey();
}
}
}
Создание и реализация даже самой простой программы (кода) осуществляется в рамках проекта (Project). Поэтому вначале необходимо создать проект. Для создания нового проекта необходимо войти в Visual C#, экспресс-выпуск и в меню «Файл» выбрать «Создать проект». Появится диалоговое окно «Создать проект».
В рамках проекта создадим консольное приложение. Консолью называется окно операционной системы, в котором отображаются вводимые с клавиатуры данные и появляются выводимые результаты. Консоль – это средство взаимодействия пользователя с консольным приложением, содержащим код (программу). Для создания консольного приложения необходимо в появившемся окне «Сздать проект» выбрать шаблон «Консольное приложение» и нажать OK.
Приложению автоматически присваивается имя ConsoleApplication1 (при желании это имя можно заменить на любое другое). Появляется окно «Редактор кода», в котором отобразится вкладка Program.cs с панелью кода – областью для ввода или редактирования кода. В этой области автоматически создается шаблон программы – код класса Program.
Замечание. Чтение последнего абзаца нужно совмещать с выполнением описанных действий на компьютере, что позволит снять возникающие при чтении вопросы.
Во внутренних фигурных скобках остается вписать операторы, которые должны быть выполнены этой программой. Каждый оператор заканчивается точкой с запятой:
int r = 3;
Console.WriteLine(r);
Console.ReadKey();
При наборе одной или нескольких первых букв выпадает список, из которого предлагается выбрать возможный в данном контексте нужный элемент кода, например, имя переменной. Далее нужно щелкнуть по нему два раза или нажать клавишу Enter элемент кода появится в заданном месте программы.
Первый оператор (присваивания) задает тип (в данном примере int – целый) и значение переменной r. Второй – выводит на экран (консоль) значение r. В соответствии с этим опеатором на экране появляется окно и в него выводится значение (в данном примере 3). Третий оператор помещен здесь, чтобы задержать результат на экране, пока не будет нажата какая-либо клавиша. В противном случае результат очень быстро исчезнет с экрана. Убедитесь в этом сами. Выполнить программу можно, нажав клавишу F5 (или Ctrl/F5, см. гл. 9).
В написанном консольном приложении из предлагаемого шаблона кода необходимыми являются только следующие строки:
using System;
class Program
static void Main(string[] args)
Первая строка – директива using - разрешает использование типов, которые содержатся в пространстве имен System библиотеки классов .NET Framework. Пространство имен System содержит фундаментальные и базовые классы. В данном примере директива using обеспечивает доступ к структуре int и классу Console.
Вторая строка объявляет класс с именем Program с помощью ключевого слова class (классу может быть задано любое имя). Содержимое класса – метод (методы) класса – задается в фигурных скобках.
В последней строке объявляется метод Main. Стандартное содержимое скобок может быть опущено, т.е. эта строка может иметь вид
static void Main()
Таким образом, программа для нашего примера может выглядеть так:
using System;
class Program
{
static void Main()
{
int r = 3;//инициализация переменной
Console.WriteLine(r);
Console.ReadKey();
}
}
Замечание. Текст, расположенный в строке после //, является комментарием и при выполнении программы игнорируется.
Здесь в классе Program определен один метод static void Main (смысл терминов static и void, см. гл. 5). Метод Main должен быть обязательно в любой программе. Именно методу Main передается управление при запуске приложения.
Метод – это оформленная специальным образом последовательность инструкций (операторов) для выполнения каких-либо действий над объектами (переменными). (Более строгое и развернутое определение дается см. гл. 5.) Выполнение этих инструкций начинается после вызова метода из другого метода указанием его имени и необходимых аргументов (последнее не относится к методу Main). Метод является некоторым аналогом процедур (функций) в алгоритмических языках.
Метод Main имеет особый статус. Он является точкой входа каждого приложения C# и вызывается при запуске программы. Остальные методы вызываются из метода Main или других методов.
Если метод описан в классе, к которому принадлежит и Main, то для его вызова можно указать только имя и аргументы в круглых скобках или пустые круглые скобки, если аргументов нет. Если метод принадлежит другому классу, то для его вызова нужно указать имя класса (или имя экземпляра класса) и после точки имя метода, далее круглые скобки. В скобках указать аргументы метода, если они есть, или пустые скобки, если аргументов у метода нет. Например, вызов методов Console.WriteLine(r) и Console.ReadKey() класса Console в предыдущем примере.
В библиотеке имеется большое число готовых методов, сгруппированных в классы по своему назначению. Например, класс Math предоставляет константы и статические методы (термин статические поясним позже) для вычисления тригонометрических, логарифмических и других общих математических функций. Так, для вычисления cos(x) необходимо указать класс и после точки метод: Math.сos(x), см. примеры программ в гл. 1.