Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 45

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 404 >> Следующая


! nrlic.iii-. — J- flrtiililei IS-5 * 1 -> -1?!

fn(jl ir; i.i., ¦-> " и о i ¦1': -> Lfcj

Lr>iiJ.l ic it . =r. i-in;; "I'i'ul''1 : l'V';-97'.J" -> Гvuc'f'J V'J'i

1Ч5к, ,'i. > tuny; ' IV -> 84

Prijss Mi у J-Ltnj r:u с dim: Hint:

' jnix(

zi ± j

Как это работает

В этом примере содержатся все типы преобразований, с которыми вы успели познакомиться. Они выполняются как при обычном присваивании (это отражено в приведенных выше коротеньких примерах), так и в выражениях. Нам нужно рассмотреть оба случая, поскольку выполнение любого ие унарного оператора — а не только оператора присваивания — может привести к преобразованию тнпов. Например:

HhortVal * ?1oatVal

Здесь перемножаются значения типа short и типа float. В подобных ситуациях, когда выполнение преобразования явно не указано, если это возможно, будет выполняться неявное преобразование. В данном примере единственным преобразованием, имеющим смысл, является преобразование short в значенне типа float (поскольку преобразование из float в short должно задаваться явно), поэтому именно оно и будет использовано.

Однако при желании мы можем переопределить такое поведение:

phortval * (short)floatVal -

Это вовсе не означает, что при выполнении данной операции будет получено значение типа short. Поскольку результатом перемножения двух значений типа shore с большой вероятностью может оказаться число, превосходящее 32 767 (максимально допустимое значение, которое может содержаться в типе shore), то в действительности эта операция возвращает значение типа inc.

Явные преобразования, определяемые с помощью этого синтаксиса изменения типов, имеют такое же старшинство, как и другие унарные операторы (например, оператор + + , используемый в качестве префикса): их старшинство максимально.
Дополнительные сведения о переменнъьх________________________________________________85

Когда встречается выражение, в котором используются смешанные типы, то преобразования осуществляются по мере выполнения отдельных операторов в соответствии с их старшинством. Это означает, что могут происходить некоторые “промежуточные” преобразования. Например:

doubleResult =* floatVal + (ehortVal * floatVal) t

Первый оператор, который должен выполняться в данном случае,— это оператор *, который, как только что было сказано, приведет к преобразованию значения shortvoi к типу float. Затем будет выполняться оператор +, которому не потребуется производить никаких преобразований, поскольку он будет работать с двумя значениями типа float (floatVal н значением тнпа float, получившимся в результате выполнения операции shortval * fioatval). Наконец, значение типа float будет преобразовано в значение тнпа double при выполнении оператора

На первый взгляд весь этот процесс преобразования типов может показаться сложным, одиако при разбивке выражения на составные части с учетом порядка выполнения операций все становится совершенно понятно.

Сложные типы переменных

Итак, к настоящему моменту мы рассмотрели все простые типы переменных, которые используются в С#. Кроме них, в C# существует три более сложных (но очень полезных) типа переменных:

? Перечислимый тип

? Структуры

? Массивы

Перечислимый тип

Все типы, которые рассматривались до снх пор (за исключением типа string), имеют четко определенное множество допустимых значений. Это множество может быть настолько большим (как, например, у тнпа double), что его можно рассматривать в качестве континуума, однако все равно это фиксированное множество. В качестве простейшего примера можно привести тип bool, который может принимать только одно нз двух значений: true или false.

Существует большое количество ситуаций, когда требуется переменная, принимающая значение из фиксированного множества. Например, может возникнуть необходимость в использовании переменной типа orientation (ориентирование), которая принимает одно из значений: north (север), south (юг), east (восток) или west (запад).

В подобных ситуациях очень полезным может оказаться перечислимый тип. Он позволяет сделать как раз то. что требуется для переменной orientation: определить тип, который принимает одно значение из конечного множества задаваемых нами значений.

Все, что для этого требуется сделать,— это создать свой собственный перечислимый тип, который будет называться orientation и для которого будут существовать четыре возможных значения, перечисленных выше. Обратите внимание, что это является дополнительным шагом: мы не просто объявляем переменную некоторого типа, мы сначала объявляем и подробно описываем создаваемый пользователем тип и только после этого получаем возможность объявить переменную данного типа.
8 6 _______________________Глааа 5

Определение перечислимых типов

Перечислимый тип описывается с помощью ключевого слова enum следующим образом:

спит миВви

{

imwinial, значение! j значлниеЗ,

значением .

)

Затем объявляются переменные этого тнпа:

хняТипа иняЛервнвкноЯ ;

Им присваиваются конкретные значения:
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.