Лекция 3. Лекция 3. Переменные, операции, выражения
Скачать 103.61 Kb.
|
ВниманиеАрифметические операции не определены для более коротких, чем int, типов. Это означает, что если в выражении участвуют только величины типов sbyte, byte, short иushort, перед выполнением операции они будут преобразованы в int. Таким образом, результат любой арифметической операции имеет тип не менее int. Правила неявного преобразования иллюстрирует рис. 3.2. Если один из операндов имеет тип, изображённый на более низком уровне, чем другой, то он приводится к типу второго операнда при наличии пути между ними. Если пути нет, возникает ошибка компиляции. Рис. 3.2. Неявные арифметические преобразования типов Введение в исключенияПри вычислении выражений могут возникнуть ошибки, например, переполнение, исчезновение порядка или деление на ноль. В C# есть механизм, который позволяет обрабатывать подобные ошибки и таким образом избегать аварийного завершения программы. Он так и называется: механизм обработки исключительных ситуаций(исключений). Если в процессе вычислений возникла ошибка, система сигнализирует об этом с помощью специального действия, называемого выбрасыванием(генерированием) исключения. Каждому типу ошибки соответствует своё исключение. Поскольку C# – язык объектно-ориентированный, исключения являются классами, которые имеют общего предка – класс Exception, определённый в пространстве имён System. Например, при делении на ноль будет сгенерировано исключение DivideByZeroException, при недостатке памяти – исключение OutOfMemoryException. Программист может задать способ обработки исключения в специальном блоке кода, начинающемся с ключевого слова catch ("перехватить"), который будет автоматически выполнен при возникновении соответствующей исключительной ситуации. Внутри блока можно, например, вывести предупреждающее сообщение или скорректировать значения величин и продолжить выполнение программы. Если этот блок не задан, система выполнит действия по умолчанию, которые обычно заключаются в выводе диагностического сообщения и нормальном завершении программы. Обработка исключений подробно рассматривается позже. Справочная информация: Основные операции C#Инкремент и декрементОперации инкремента (++) и декремента (--) увеличивают и уменьшают операнд на единицу. Они имеют две формы записи – префиксную, когда знак операции записывается перед операндом, и постфиксную. В префиксной форме сначала изменяется операнд, а затем его значение становится результирующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется. Стандартные операции инкремента существуют для целых, символьных, вещественных и финансовых величин. Операция newОперация new служит для создания нового объекта. Формат операции: newтип ( [ аргументы ]) С помощью этой операции можно создавать объекты как ссылочных, так и значимых типов, например: object z = new object(); int i = new int(); // то же самое, что int i = 0; При выполнении операции new сначала выделяется необходимый объем памяти (для ссылочных типов в хипе, для значимых – в стеке), а затем вызывается так называемый конструктор по умолчанию, то есть метод, с помощью которого инициализируется объект. Переменной значимого типа присваивается значение по умолчанию, которое равно нулю соответствующего типа. |