Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Явное преобразование типа

ЗАМЕЧАНИЕ

Операции отрицания (лаб2)

Операция new

Инкремент и декремент (лаб2)

Операции инкремента (++) и декремента (--), называемые также операциями увеличения и уменьшения на единицу, имеют две формы записи — префиксную, когда знак операции записывается перед операндом, и постфиксную. В префиксной форме сначала изменяется операнд, а затем его значение становится резуль­тирующим значением выражения, а в постфиксной форме значением выражения является исходное значение операнда, после чего он изменяется.

Операция new служит для создания нового объекта. Формат операции:

 

new тип ([аргументы])

 

С помощью этой операции можно создавать объекты как ссылочных, так и зна­чимых типов, например:

 

object z = new object ();

int i = new int(); // то же самое, что int i =0;

 

Объекты ссылочного типа обычно формируют именно этим способом, а пере­менные значимого типа чаще создаются так, как описано ранее в разделе «Переменные».

При выполнении операции new сначала выделяется необходимый объем памяти (для ссылочных типов в хипе, для значимых — в стеке), а затем вызывается так называемый конструктор по умолчанию, то есть метод, с помощью которого ини­циализируется объект. Переменной значимого типа присваивается значение по умолчанию, которое равно нулю соответствующего типа. Для ссылочных типов стандартный конструктор инициализирует значениями по умолчанию все поля объекта.

Если необходимый для хранения объекта объем памяти выделить не удалось, генерируется исключение OutOfMemoryException.

Арифметическое отрицание (унарный минус -) меняет знак операнда на противоположный. Стандартная операция отрицания определена для типов int, long, float, double и decimal. К величинам других типов ее можно применять, если для них возможно неявное преобразование к этим типам (см. рис. 3.1). Тип результа­та соответствует типу операции.

Для значений целого и финансового типов результат достигается вычитанием ис­ходного значения из нуля. При этом может возникнуть переполнение. Будет ли при этом выброшено исключение, зависит от контекста.

Логическое отрицание (!) определено для типа bool. Результат операции — значение false, если операнд равен true, и значение true, если операнд равен false.

Поразрядное отрицание (~), часто называемое побитовым, инвертирует каждый разряд в двоичном представлении операнда типа int, uint, long или ulong.

Операция используется, как и следует из ее названия, для явного преобразо­вания величины из одного типа в другой. Это требуется в том случае, когда не­явного преобразования не существует. При преобразовании из более длинного типа в более короткий возможна потеря информации, если исходное значение выходит за пределы диапазона результирующего типа. Эта потеря никак не диагностируется, то есть остается на совести программиста.

Формат операции:

(тип) выражение

Здесь тип — это имя того типа, в который осуществляется преобразование, а вы­ражение чаще всего представляет собой имя переменной, например:

 

long b=300;

int a=(int) b; // данные не теряются

byte d=(byte) a; // данные теряются

 

Преобразование типа часто применяется для ссылочных типов при работе с иерархиями объектов.

 

<== предыдущая лекция | следующая лекция ==>
ЗАМЕЧАНИЕ. Преобразование из типов int, uint и long в тип float и из типа long в тип double может вызвать потерю точности | Умножение, деление и остаток от деления (лаб2)
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.