
- •Введение
- •Создание простого приложения в ms Visual Studio
- •Отладка программы
- •Пошаговый режим
- •Точки останова
- •Безусловные точки останова
- •Условные точки останова
- •Просмотр переменных
- •Стек вызова функций
- •Разработка оконных приложений
- •Размещение компонентов на форме. Свойства компонента.
- •Компонент CheckBoxListBox
- •Переменные
- •Приведение типов
- •Операции, приоритет
- •Перегрузка операций
- •If(выражение_1) оператор_1
- •Циклы While
- •Цикл foreach
- •Программирование классов
- •Введение в классы и объекты в с#
- •Общий синтаксис класса
- •Поля и свойства
- •Использование переменного числа аргументов
- •Объявление объектов класса. Оператор new
- •Инциализация членов класса
- •Конструкторы и деструкторы
- •Ключевое слово this
- •Ключевое слово static
- •Наследование
- •Полиморфизм.
- •Абстрактные классы
- •Интерфейсы
- •Реализация интерфейсов
- •Интерфейсные свойства
- •Интерфейсные индексаторы
- •Массивы
- •Обработка исключительных ситуаций
- •Предварительная проверка параметров
- •Проверка кодов возврата функций и методов
- •Применение механизма исключений
- •Блоки try-catch
- •Применение блока finally
- •Массивы как коллекции
- •Коллекция ArrayList
Операции, приоритет
Выражения строятся из операндов - констант, переменных, функций, - объединенных знаками операций и скобками. При вычислении выражения определяется его значение и тип. Эти характеристики однозначно задаются значениями и типами операндов, входящих в выражение, и правилами вычисления выражения. Правила также задают приоритет операций, а для операций одного приоритета порядок применения (слева направо или справа налево),преобразование типов операндов и выбор реализации для перегруженных операций, тип и значение результата выполнения операции над заданными значениями операндов определенного типа.
Программист, записывающий выражение, должен знать, по каким правилам оно будет вычисляться.
Ниже приведена таблица приоритетов операций, в каждой строке которой собраны операции одного приоритета, а строки следуют в порядке приоритетов, от высшего к низшему.
Приоритет |
Категория |
Операции |
Порядок |
0 |
Первичные |
(expr) x.y f(x) a[x] x++ x-- new sizeof(t) typeof(t) checked(expr) unchecked(expr) |
Слева направо |
1 |
Унарные |
+ - ! ~ ++x --x (T)x |
Слева направо |
2 |
Мультипликативные (Умножение) |
* / % |
Слева направо |
3 |
Аддитивные (Сложение) |
+ - |
Слева направо |
4 |
Сдвиг |
<< >> |
Слева направо |
5 |
Отношения, проверка типов |
< > <= >= is as |
Слева направо |
6 |
Эквивалентность |
== != |
Слева направо |
7 |
Логическое И |
& |
Слева направо |
8 |
Логическое исключающее ИЛИ (XOR) |
^ |
Слева направо |
9 |
Логическое ИЛИ (OR) |
| |
Слева направо |
10 |
Условное И |
&& |
Слева направо |
11 |
Условное ИЛИ |
|| |
Слева направо |
12 |
Условное выражение |
? : |
Справа налево |
13 |
Присваивание |
= *= /= %= += -= <<= >>= &= ^= |= |
Справа налево |
Перегрузка операций
Под перегрузкой операции понимается существование нескольких реализаций одной и той же операции. Большинство операций языка C# перегружены - одна и та же операция может применяться к операндам различных типов. Поэтому перед выполнением операции идет поиск реализации, подходящей для данных типов операндов. Операции, как правило, выполняются над операндами одного типа. Если же операнды разных типов, то предварительно происходит неявное преобразование типа операнда. Оба операнда могут быть одного типа, но преобразование типов может все равно происходить - по той причине, что для заданных типов нет соответствующей перегруженной операции. Такая ситуация достаточно часто возникает на практике, поскольку, например, операция сложения не определена для младших подтипов арифметического типа.
УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ
Операторы выбора
Как в С++ и других языках программирования, в языке C# для выбора одной из нескольких возможностей используются две конструкции - if и switch.
Оператор if
Синтаксиса оператора if имеет следующий вид: