Главная » Просмотр файлов » 1629295407-c61bfe4caba98380ea3e7cdae6295416

1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 14

Файл №846200 1629295407-c61bfe4caba98380ea3e7cdae6295416 (Шилдт Герберт - Полный справочник по C#) 14 страница1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200) страница 142021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Обратите также внимание на то, как в выводимых строкахобеспечивается наличие двойных кавычек (с помощью ESC-последовательности \").Помимо формы только что описанного строкового литерала можно также определитьбуквальный (verbatim) строковый литерал. Буквальный строковый литерал начинается ссимвола @, за которым следует строка, заключенная в кавычки. Содержимое строки вкавычках принимается без какой бы то ни было модификации и может занимать две илиболее строк. Таким образом, можно переходить на новую строку, использовать табуляцию ипр., не прибегая к помощи управляющих последовательностей. Единственное исключениесоставляет двойная кавычка ("). Чтобы получить в выходных данных двойную кавычку, вбуквальном строковом литерале необходимо использовать две подряд двойные кавычки(""). А теперь обратимся к программе, в которой демонстрируется использованиебуквального строкового литерала.// Демонстрация буквальных строковых литералов.using System;class Verbatim {public static void Main() {Console.WriteLine(@"Это буквальныйстроковый литерал,который занимает несколько строк.");Console.WriteLine(@"А теперь воспользуемся табуляцией:1 2 345 6 78");Console.WriteLine(@"Отзыв программиста: ""Мне нравится C#.""");}}Вот что сгенерирует эта программа:Глава 3.

Типы данных, литералы и переменные67Это буквальныйстроковый литерал,который занимает несколько строкА теперь воспользуемся табуляцией:12345678Отзыв программиста: "Мне нравится C#."Здесь важно отметить, что буквальные строковые литералы отображаются точно так,как они введены в программе. Они позволяют программисту так формировать выходныеданные, как они будут отображены на экране. Но в случае многострочного вывода переходна следующую строку нарушит систему формирования отступов в программе. Поэтомубуквальные строковые литералы не слишком часто используются в программах этой книги,хотя во многих случаях форматирования данных они оказываются хорошим подспорьем.И последнее.

Не путайте строки с символами. Символьный литерал (например, 'X')представляет одиночную букву типа char. А строка, хотя и содержащая всего одну букву(например, “X”), это все-таки строка.Рассмотрим переменные поближеКак вы узнали в главе 2, для объявления переменной необходимо использоватьинструкцию следующего формата:тип имя_переменной;Здесь с помощью элемента тип задается тип объявляемой переменной, а с помощьюэлемента имя_переменной — ее имя. Можно объявить переменную любого допустимоготипа. При создании переменной создается экземпляр соответствующего типа.

Такимобразом, возможности переменной определяются ее типом. Например, переменную типаbool нельзя использовать для хранения значений с плавающей точкой. Более того, типпеременной невозможно изменить во время ее существования. Например, переменную типаint нельзя преобразовать в переменную типа char.Все переменные в C# должны быть объявлены до их использования. Это —требование компилятора, поскольку, прежде чем скомпилировать надлежащим образоминструкцию, в которой используется переменная, он должен “знать” тип содержащейся вней информации.

“Знание” типа также позволяет C# осуществлять строгий контроль типов.Помимо типов переменные различаются и другими качествами. Например,переменные, которые мы использовали в примерах программ до сих пор, называютсялокальными, поскольку они объявляются внутри метода.Инициализация переменнойПеременная до использования должна получить значение. Это можно сделать спомощью инструкции присваивания. Можно также присвоить переменной начальноезначение одновременно с ее объявлением.

Для этого достаточно после имени переменнойпоставить знак равенства и указать присваиваемое значение. Общий формат инициализациипеременной имеет такой вид:тип имя_переменной = значение;68Часть I. Язык C#Здесь, как нетрудно догадаться, элемент значение — это начальное значение,которая получает переменная при создании.

Значение инициализации должносоответствовать заданному типу переменной.Вот несколько примеров:int count = 10; // Присваиваем переменной count// начальное значение 10.char ch = 'X'; // Инициализируем ch буквой X.float f = 1.2F // Переменная f инициализируется// числом 1.2.При объявлении двух или более переменных одного типа с помощью списка (сразделением элементов списка запятыми) одной или нескольким из этих переменныхможно присвоить начальные значения.

Например, в инструкцииint a, b = 8, c = 19, d;//Переменные b и c// инициализируются числами.Динамическая инициализацияХотя в предыдущих примерах в качестве инициализаторов были использованытолько константы, C# позволяет инициализировать переменные динамически, с помощьюлюбого выражения, действительного на момент объявления переменной. Рассмотрим,например, короткую программу, которая вычисляет гипотенузу прямоугольноготреугольника, заданного длинами двух противоположных сторон.// Демонстрация динамической инициализации.using System;class DynInit {public static void Main() {double s1 = 4.0, s2 = 5.0; // Длины сторон.// Динамически инициализируем переменную hypot.double hypot = Math.Sqrt((s1 * s1) + (s2 * s2));}}Console.Write("Гипотенуза треугольника со сторонами " +s1 + " и " + s2 + " равна ");Console.WriteLine("{0:#.###}.", hypot);Результат выполнения этой программы имеет такой вид:Гипотенуза треугольника со сторонами 4 и 5 равна 6,403.Здесь объявлены три локальные переменные: s1, s2 и hypot.

Первые две (s1 и s2)инициализируются константами, а третья, hypot, инициализируется динамическирезультатом вычисления гипотенузы по двум катетам. Обратите внимание на то, чтоинициализация включает вызов метода Math.Sqrt(). Как уже было сказано, дляинициализации переменной можно использовать любое выражение, действительное намомент ее объявления. Поскольку вызов метода Math.Sqrt() (как и любого другогобиблиотечного метода) действителен в этой точке программы, его вполне можноиспользовать для инициализации переменной hypot. Здесь важно то, что в выраженииинициализации можно использовать любой элемент, действительный на моментинициализации, включая вызовы методов, другие переменные или литералы.Глава 3. Типы данных, литералы и переменные69Область видимости и время существованияпеременныхДо сих пор все переменные, с которыми мы имели дело, объявлялись в начале методаMain().

Однако в C# разрешается объявлять переменные внутри любого блока. Блокначинается открывающей, а завершается закрывающей фигурными скобками. Любой блокопределяет область объявления, или область видимости (scope) объектов. Таким образом,при создании блока создается и новая область видимости, которая определяет, какиеобъекты видимы для других частей программы. Область видимости также определяет времясуществования этих объектов.Самыми важными в C# являются области видимости, которые определены классом иметодом.

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

В этом случае внешняяобласть включает внутреннюю. Это означает, что объекты, объявленные внутри внешнейобласти, будут видимы для кода внутренней области. Но обратное утверждение неверно:объекты, объявленные во внутренней области, невидимы вне ее.Чтобы лучше понять суть вложенных областей видимости, рассмотрим следующуюпрограмму:// Демонстрация области видимости блока.using System;class ScopeDemo {}70public static void Main() {int x; // Переменная x известна всему коду в пределах// метода Main().x = 10;if(x == 10) { // Начало новой области видимости.int y = 20; // Переменная y известна только// этому блоку.// Здесь известны обе переменные x и y.Console.WriteLine("x и y: " + x + " " + y);x = y * 2;}// y = 100; // Ошибка! Переменная y здесь неизвестна.// Переменная x здесь известна.Console.WriteLine("Значение x равно " + x);}Часть I.

Язык C#Как утверждается в комментариях, переменная x объявляется в начале областивидимости метода Main() и потому доступна всему последующему коду метода. Внутриблока инструкции if объявляется переменная y. А поскольку блок определяет областьвидимости, то переменная y видима только коду внутри этого блока.

Поэтому, находясь внеэтого блока, программная строка// y = 100; //Ошибка! Переменная y здесь неизвестна.оформлена как комментарий. Если убрать символ комментария, компилятор выдастсообщение об ошибке, поскольку переменная y невидима вне if-блока. Переменную xможно свободно использовать и внутри if-блока, поскольку внутренний код этого блока(т.е. код во вложенной области видимости) имеет доступ к переменным, объявленным внеего.Внутри блока переменные можно объявлять в любой точке, но действительными онистановятся только после объявления. Таким образом, если объявить переменную в началеметода, она будет доступна всему коду этого метода.

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

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

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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее