Действия программы выражаются с помощью операторов. В C# поддерживается несколько различных типов операторов, некоторые из которых определяются как внедренные операторы.
Блок позволяет записать несколько операторов языка в контексте, обычно допускающем использование только одного оператора. Блок состоит из нескольких операторов, записанных между разделителями — { и }.
Операторы объявления используются для объявления локальных переменных и констант.
Операторы выражений используются для вычисления выражений. Как операторы могут использоваться следующие выражения: вызовы методов, выделение объектов с помощью оператора new, операторы присваивания «=» и составного присваивания, операции приращения и уменьшения с помощью операторов «++» и «--».
Операторы выбора используются для выполнения одного из нескольких возможных операторов на основании значения какого-либо выражения. В этой группе представлены операторы if и switch.
Операторы итераций используются для повторяющегося выполнения внедренного оператора. В этой группе представлены операторы while, do, for и foreach.
Операторы перехода используются для передачи управления. В этой группе представлены операторы break, continue, goto, throw, return и yield.
Оператор try...catch используется для перехвата исключений, происходящих во время выполнения блока. Оператор try...finally используется для задания кода финализации, который выполняется всегда (независимо от того, возникло или нет исключение).
Операторы checked и unchecked используются для управления контекстом контроля переполненияв арифметических операциях и преобразованиях целых типов.
Оператор lock используется для получения блокировки взаимного исключения для заданного объекта, выполнения оператора и последующего снятия блокировки.
Оператор using используется для получения ресурса, выполнения оператора и последующего удаления ресурса.
В следующей таблице представлены операторы C# и примеры их использования.
Оператор
Пример
Объявление локальной переменной
static void Main() { int a; int b = 2, c = 3; a = 1; Console.WriteLine(a + b + c); }
Объявление локальной константы
static void Main() { const float pi = 3.1415927f; const int r = 25; Console.WriteLine(pi * r * r); }
class Account { decimal balance;
public void Withdraw(decimal amount) { lock (this) { if (amount > balance) { throw new Exception("Insufficient funds"); } balance -= amount; } } }
Оператор using
static void Main() { using (TextWriter w = File.CreateText("test.txt")) { w.WriteLine("Line one"); w.WriteLine("Line two"); w.WriteLine("Line three"); } }
1.6 Классы и объекты
В C# классы представляют собой фундаментальные типы. Класс — это структура данных, объединяющая состояние (поля) и действия (методы и другие функции-члены). Класс предоставляет определения для динамически создаваемых экземпляров класса (также называются объектами). Классы поддерживают механизмы наследования и полиморфизма, которые позволяют создавать производные классы, расширяющие функциональные возможности базового класса.
Новые классы создаются с помощью объявлений класса. Объявление класса начинается с заголовка, в котором задаются атрибуты и модификаторы класса, имя класса, базовый класс (если есть), а также интерфейсы, реализуемые классом. За заголовком следует тело класса, которое содержит перечень объявлений членов, записанных между разделителями — { и }.
Ниже приведено объявление простого класса Point:
public class Point { public int x, y;
public Point(int x, int y) { this.x = x; this.y = y; } }
Экземпляры класса создаются с помощью оператора new, который выделяет память для нового экземпляра, вызывает конструктор для инициализации экземпляра и возвращает ссылку на экземпляр. С помощью следующих операторов создаются два объекта Point, ссылки на которые сохраняются в двух переменных: