Главная » Просмотр файлов » Г. Шилдт - С# 3.0 Полное руководство. 2010

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 17

Файл №1160798 Г. Шилдт - С# 3.0 Полное руководство. 2010 (Г. Шилдт - С# 3.0 Полное руководство. 2010) 17 страницаГ. Шилдт - С# 3.0 Полное руководство. 2010 (1160798) страница 172019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 17)

Ниже приведен пример краткой программы для вычисления гипотенузы прямоугольного треугольника по длине его противоположных сторон. // Продемонстрировать динамическую инициализацию. цзхпд Яунгею; с1азз Руп1п1С ( Задать значение переменной можно, в частности, с помощью оператора присваивания, как было не раз продемонстрировано ранее. Кроме того, задать начальное значение переменной можно при ее объявлении.

Для этого после имени переменной указывается знак равенства (=) и присваиваемое значение. Ниже приведена общая форма инициализации переменной. ВО Часть (. Язык С» вкак№с чо1к( Мвтп () ( // Длина Сторон прямоугольного треугольника. ооцЬ1е в1 = 4.0№ к(оцЬ1е в2 = 5.0; // Инициализировать переменную Ьурок динамически. аоцЬ1е Ьурок = МаСЬ.эягк( (в1 * в1) + (в2 * в2) ); Сопво1е.нгтте( "Гицотенуза треугольника со сторонами " т в1 + " и " + в2 + " равна "); Сопво1е.ыг1Сеъкпе("(О:№.№№№).", Ьурот.)) ) Результат выполнения этой программы выглядит следующим образом; Гипотенуза треугольника со сторонани 4 и 5 равна 6.403 В данном примере объявляются три локальные переменные; в1, в2 и Ьурот.

Две из них (в1 и в2) инициализируются константами, А третья (ьурос) динамически инициализируегся вычисляемой длиной гипотенузы. Для такой инициализации используется выражение, указываемое в вызываемом методе МаСЬ. Яс(гк () . Как пояснялось выше, для динамической инициализации пригодно любое выражение, действительное на момент объявления переменной. А поскольку вызов метода масЬ.

зс(гс () (или любого другого библиотечного метода) является действительным на данный момент, то его можно использовать для инициализации переменной Ьурот. Следует особо подчеркнуть, что в выражении для инициализации можно использовать любой элемент, действительный на момент самой инициализации переменной, в том числе вызовы методов, другие переменные или литералы. Неявно типизированные переменные Как пояснялось выше, все переменные в С№ должны быть объявлены. Как правило, при объявлении переменной сначала указывается тип, например »пС или Ьоо1, а затем имя переменной. Но начиная с версии С№ ЗЛ) компилятору предоставляется возможность самому определить тип локальной переменной, исходя из значения, которым она инициализируется.

Такая переменная называется неявно типизированной. Неявно типизированная переменная объявляется с помощью ключевого слова чаг и должна быть непременно инициализирована. Для определения типа этой переменной компилятору служит тип ее инициализатора, т.е. значения, которым она инициализируется. Рассмотрим такой пример: чаг е = 2.7183; В данном примере переменная е инициализируется литералом с плавающей точкой, который по умолчанию имеет тип с(оцЬ1е, и поэтому она относится к типу с)оцЬ1е.

Если бы переменная е была объявлена следующим образом: чаг е = 2.7183Г," то она была бы отнесена к типу №1оаС. В приведенном ниже примере программы демонстрируется применение неявно типизированных переменных. Он представляет собой вариант программы из предыдущего раздела, переделанный таким образом, чтобы все переменные были типизированы неявно. Глава 3.

Типы данных, литералы и переменные 81 // Продемонстрировать применение неявно типизированных переменных. оя1пд зуягешт с1аяя тшр11с1Г1утуребуаг ( ясас1с чогб Ма).п() ( // Эти переменные типизированы неявно. Они отнесены // к типу бооЫе, поскольку инипиализирушшие их // выражения сами относятся к типу бопЫе. чаг я1 = 4.0; чаг я2 = 5.0; // Итак, переменная Ьурос типизирована неявно и О относится к типу бооЬ1е, поскольку результат, // возврашаемый методом Бчгг(), имеет тип боиЫе. чаг Ьурос = Масп.яягс( (я1 * я1) + (я2 * я2) ); Сопяо1е.ыг1ге("Гипотенуза треугольника со сторонами " ь я1 + " Ьу " + я2 + " равна ")т Сопяо1е.иг1сеь1пе("(О:4.$44).", Ьурос)х О Следушший оператор не может быть скомпилирован, // поскольку переменная я1 имеет тип бооЬ1е и // ей нельзя присвоить десятичное значение.

// я1 12.2М) // Ошибка! ) ) Результат выполнения этой программы оказывается таким же, как и прежде. Важно подчеркнуть, что неявно типизированная переменная по-прежнему остается строго типизироваииой. Обратите внимание иа следующую закоммеитироваииую строку из приведенной выше программы. // я1 = 12.2Мт // Ошибка! Эта операция присваивания недействительна, поскольку переменная я1 относится к типу бопЫе. Следовательно, ей нельзя присвоить десятичное значение. Единственное отличие неявно типизированной переменной от обычной, явно типизированной перемеииой, — в способе определения ее типа.

Как только этот тип будет определен, ои,закрепляется за переменной до конца ее существоваиия. Это, в частности, означает, что тип переменной я1 ие может быть изменен по ходу выполнения программы. Неявно типизированные переменные внедрены в С() ие для того, чтобы заменить обычные объявления пербмеииых. Напротив, неявно типизированные переменные предназначены для особых случаев, и самый примечательный из иих имеет отношение к языку интегрированных запросов (1.1Ь)Я), подробно рассматриваемому в главе 19. Таким образом, большинство объявлений переменных должны и впредь оставаться явно типизированными, поскольку оии облегчают чтение и понимание исходного кода программы. И последнее замечание: одновременно можно объявить только одиу неявно типизированную переменную. Поэтому объявление чаг я1 = 4.0, я2 = 5.0; // Ошибка! является неверным и ие может быть скомпилироваио, поскольку в ием предпринимается попытка объявить обе переменные, я1 и я2, одновременно.

82 Часть). язык Сз Область действия и время существования переменных Все перемеииые, использовавшиеся в предыдущих примерах программ, объявлялись в самом начале метода ма1п () . Но в С)) локальную переменную разрешается объявлять в любом кодовом блоке. Как пояснялось в главе 2, кодовый блок начинается открываюгцей фигурной скобкой и оканчивается закрывающей фигурной скобкой. Этот блок и определяет облас)пь да)с)явил. Следовательно, всякий раз, когда начинается блок, образуется новая область действия. Прежде всего область действия определяет видимость имен отдельных элементов, в том числе и переменных, в других частях программы без дополнительного уточнения. Оиа определяет также время существования локальных перьмеииых.

В языке СФ к числу наиболее важных относятся области действия, определяемые классом и методом. Рассмотрение области действия класса (и объявляемых в ией перемеииых) придется отложить до того момента, когда в этой книге будут описываться классы. А до тех пор будут рассматриваться только тс области действия, которые определяются методом или же в самом методе.

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

Области действия могут быть вложенными. Например, всякий раз, когда создается кодовый блок, одновременно образуется и новая, вложенная область действия. В этом случае внешняя область действия охватывает внутреннюю область. Это означает, что локальиые переменные, объявленные во внешней области действия, будут видимы для кода во внутренней области действия. Но обратное ие справедливо: локальные переменные, объявленные во внутренней области действия, ие будут видимы вие этой области. Для того чтобы стала более понятной сущность вложенных областей действия, рассмотрим следующий пример программы: // Продемонстрировать область действия кодового блока. оагпч Зуясею! с1аяа Зсорепеюо ( згагъс чоьб Маьп() ( ъпг х; // Эта переменная доступна для всего кода // в пределах метода Маьп(). х = 10у 11(х == 10) 1 // начать новую область действия 1пс у = 20; // Эта переменная доступна только // в данном кодовом блоке.

// Эдесь доступны обе переменные, х и у. Сопяо1е.иг1сеъ1пе("х и у: " + х + " " Ь у); к=у*2; Глава э. типы данных, литералы и переменные 83 ) // у = 100; // Ошибка! Переменна у здесь недоступна. // П переменная х здесь по-прежнему доступна. Сопэо1е.игьаеъьпе("х равно " ь х)' ) ) Как поясняется в комментариях к приведенной выше программе, переменная х обьявляется в начале области действия метода Маъп ( ), и поэтому она доступна для всего последующего кода в пределах этого метода.

В блоке условного оператора ьг объявляется переменная у. А поскольку этот кодовый блок определяет свою собственную область действия, то переменная у видима только для кода в пределах данного блока. Именно поэтому строка 11пе у = 100;, находящаяся за пределами этого блока, закомментироваиа. Если удалить находящиеся перед ней символы комментария Г//), то во время компиляции программы произойдет ошибка, поскольку переменная у невидима за пределами своего кодового блока. В то же время переменная х может использоваться в блоке условного оператора аг, поскольку коду из этого блока, находящемуся во вложенной области действия, доступны переменные, объявленные в охватывающей его внешней области действия.

Характеристики

Тип файла
DJVU-файл
Размер
6,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее