Операторы
Оператор – этозапись инструкций по выполнению некоторой последовательности действий. Операторы используются для выполнения вычислений, присвоения значений, проверки на равенство и неравенство и т. д.
В языке C# имеется большой набор операторов. Они представляют собой символы, определяющие операции, которые необходимо выполнить с выражением.
Операторы в выражениях исполняются с приоритетами:
Высший приоритет имеют основные операторы,
Далее мультипликативные (типа умножения),
Затем аддитивные (типа сложения) и
Далее отношения (типа сравнения).
Основные операторы
Оператор | Действие |
x.y | Оператор "точка" используется для доступа к членам класса. Формат - Класс.Член. |
(x) | Круглые скобки (…) используются для указания порядка выполнения операций в выражении. Наивысший приоритет – операции в самых внутренних скобках. |
A[x] | Квадратные скобки [ ]. Используются для доступа к элементу массива, его индекс необходимо заключить в скобки. Для одномерных массивов A[1]. Для многомерных массивов индексы разделяются запятыми B[1,2]. |
new | Используется для создания экземпляра класса. Class1 Имя = new Class1(); |
Typeof(имя типа) | Используется для получения типа объекта. System.Type type = typeof(имя типа); |
Пример1:
private void button1_Click(object sender, EventArgs e)
{
button1.Visible = false;
label1.Text = "Студент";
textBox1.Text = "Группа ПИЭ-01";
}
Пример2:
double x, a, z;
a = 0.6; x = 0.5;
z = (Math.Pow(Math.Sin(x + 5), 2) - Math.Abs(x)) /
(Math.Exp(-a * x) + Math.Pow(x,3));
Console.WriteLine("z={0:E}", z);
Console.ReadKey();
Унарные операторы
Оператор | Действие |
+ X | Унарный плюс. Это знак числа X. Он использован по умолчанию. |
++X | Префиксная форма инкремента. Увеличение X на 1 перед использованием. |
X ++ | Постфиксная форма инкремента. Увеличение X на 1 после использования. |
- X | Унарный минус. Это знак числа X. |
-- X | Префиксная форма декремента. Уменьшение X на 1 перед использованием. |
X -- | Постфиксная форма декремента. Уменьшение X на 1 после использования. |
! X | Логическое отрицание. Унарный оператор, который выполняет над операндом X операцию НЕ. Он задан для типа bool и меняет значение операнда true на false, или наоборот. |
~X | Поразрядное дополнение. Инвертирование каждого бита целого X. |
(T) x | Явное преобразование x в тип T |
Пример3:
int x=10, y1, y2, y3;
y1 = ++x; //x=11
y2 = x++; //x=11
y3 = x; //x=12
Console.WriteLine("y1= " + y1);
Console.WriteLine("y2= " + y2);
Console.WriteLine("y3= " + y3);
В обоих случаях переменная х получит значение 11. Разница состоит лишь в том, в какой момент она станет равной 11 (до присвоения ее значения переменной y или после).
Пример4:
int x=10, y1, y2;
y1 =x + ++x;
y2 = x;
Console.WriteLine("y1= " + y1);
Console.WriteLine("y2= " + y2);
Console.ReadKey();
Инструкция x + ++x выполняется следующим образом: сначала запоминается исходное значение х=10, затем инкрементируется х (х=10+1=11). Далее суммируются новое значение x с исходным (11+10=21), а результат суммирования присваивается y.
Пример5:
int x = 10, y1, y2;
y1 = x + x++;
y2 = x;
Console.WriteLine("y1= " + y1);
Console.WriteLine("y2= " + y2);
Console.ReadKey();
Инструкция x + x++ выполняется следующим образом: сначала суммируются х+х (10+10=20), результат суммирования присваивается y, затем инкрементируется переменная х (10+1=11) для дальнейшего использования в программе.
Пример6
int x=6, y1, y2;
y1 =x + --x;
y2 = x;
Console.WriteLine("y1= " + y1);
Console.WriteLine("y2= " + y2);
Мультипликативные операторы
Оператор | Действие |
X * Y | Умножение. Вычисляет произведение двух операндов. |
X / Y | Деление. Делит X на Y. При делении целых чисел результат всегда является целочисленным. Остаток отбрасывается. |
X % Y | Остаток. Вычисляет остаток после деления X на Y. |
X & Y | Логическое умножение (И - AND). Вычисляет X и Y независимо от X. |
Пример6:
int ires, ioct;
double dres, doct;
ires = 10 / 3; ioct = 10 % 3; dres = 10.0 / 3.0; doct = 10.0 % 3.0;
Console.WriteLine("Результат и остаток от деления 10/3=" + ires + " " + ioct);
Console.WriteLine("Результат и остаток от деления 10.0/3.0=" + dres + " " + doct);