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

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 42

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

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

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

Обратите внимание на применение модификатора гег. рнЬ11с чогб Бог(тег ьнс 1) ( * 1; ) ) с1авв Кегоезо ( вгаг1с чотб Маьд() ( йеттевг оЬ = лен Кегтевг()т 1пс а = 10; солво1е.игтьеььле("а до вызова. "" + а) оЬ.Бог(гег а); // обратите внимание на применение модификатора гег Солво1е.нгьяеъьне("а после вызова: " + а) ) ) Как видите, модификатор ге Т указывается перед объявлением параметра в самом методе и перед аргументом при вызове метода. Ниже приведен результат выполнения данной программы, который подтверждает, что значение аргумента а действительно было изменено с помощью метода Бс) г ( ) .

а до вызова: 10 а после вызова: 100 224 Часть (. Язык С(г Теперь, используя модификатор ге1, можно написать метод переставляющий местами значения двух своих аргументов простого типа. В качестве примера ниже приведена программа, в которой метод Яиар () выполняет перестановку значений двух своих целочисленных аргументов, когда он вызывается. Поменять местами два значения. пягпэ Яуясев; с1аяя уа1оеЯнар ( Этот метод меняет местами свои аргументы. рпьггс хогг) 5яар(геГ гпс а, геГ 1пп Ь) гпг г.; а; а=Ь; Ь ) ) с1аяя Уа1пеэнароево ( ясас1с чо10 На1п() ( Уа1оезнар оЬ = пен Уа1пеэнар() гпс х = 10, у = 20; сопяо1е.игггешпе("х и у до вызова: " + х + " " + у); оЬ.Янар(геГ х, гет у); Сопяо1е.нггсеЬгпе("х и у после вызова: " + х + " " + у); ) ) Вот к какому результату приводит выполнение этой программы.

х и у до вызова: 10 20 х и у после вызова: 20 10 В отношении модификатора гег необходимо иметь в виду следующее. Аргументу, передаваемому по ссылке с помощью этого модификатора, должно быль присвоено значение до вызова метода. Дело в том, что в методе, получающем такой аргумент в качестве параметра, предполагается, что параметр ссылается на действительное значение. Следовательно, при использовании модификатора гег в методе нельзя задать первоначальное значение аргумента. Использование модификатора параметра ои~ Иногда ссылочный параметр требуется использовать для получения значения из метода, а не для передачи ему значения.

Допустим, что имеется метод выполняющий некоторую функцию, например, открытие сетевого сокета и возврат кода успешного или неудачного завершения данной операции в качестве ссылочного параметра. В этом случае методу не передается никакой информации, но в то же время он должен возвратить определенную информацию. Главная трудность при этом состоит в том, Глава 8. Подробнее о методах и классах 225 что параметр типа ге1 должен быть инициализирован определенным значением до вызова метода. Следовательно, чтобы воспользоваться параметром типа ге Е, придется задать для аргумента фиктивное значение и тем самым преодолеть данное ограничение. Правда, в СФ имеется более подходящий вариант выхода из подобного затруднения — воспользоваться модификатором параметра оцб. Модификатор параметра оцс подобен модификатору сей, за одним исключением: он служит только для передачи значения за пределы метода.

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

Следовательно, после вызова метода параметр оцс будет содержать некоторое значение. Ниже приведен пример применения модификатора параметра оцс. В этом примере программы для разделения числа с плавающей точкой на целую и дробную части используется метод Себрагба () из класса Оесощрове. Обратите внимание на то, как возвращается каждая часть исходного числа. !/ использовать модификатор параметра оцс. цвгпч зувгещ( с1аав Оесощроае 2* Разделить числовое значение с плавающей точкой на целую и дробную части. */ рцЬ11с хпг оеСРаггв(боцЬ1е и, оцг боцЬ1е Ггас) ьпг вбо1е( вбо1е = (1пт) и; Глас = и — иЬо1ег /! передать дробную часть числа через параметр Ггас гесцгп вЬо1е; // возвратить целую часть числа с1авв Овебцв ( ввавьс уоьб Нахп() Оесощроае оЬ = пен Оесощрове() ьпс боцбзе об.беСРагта(10. 125, оцв Сопво1е.нгьвевьпе("Целая часть числа равна Сопво1е.нггвеьгпе("Дробная часть числа равна ) ) Выполнение этой программы дает следующий результат.

Целая часть числа равна 10 Дробная часть числа равна 0.125 226 Часть (. Язык С() Метод Веграггв () возвращает два фрагмента информации. Во-первых, целую часть исходного числового значения переменной и обычным образом с помощью оператора гессгп. И во-вторых, дробную часть этого значения посредством параметра вегас типа опт. Как показывает данный пример, используя модификатор параметра опт, можно организовать возврат двух значений из одного и того же метода.

Разумеется, никаких ограничений на применение параметров опт в одном методе не существует. С их помощью из метода можно возвратить сколько угодно фрагментов информации. Рассмотрим пример применения двух параметров опт. В этом примере программы метод НавСошрасгог () выполняет две функции. Во-первых, он определяет общий множитель (кроме 1) для двух целых чисел, возвращая логическое значение стае, если у них имеется общий множитель, а иначе — логическое значение уа1ее. И во-вторых,.он возвращает посредством параметров типа опс наименьший и наибольший общий множитель двух чисел, если таковые обнаруживаются.

// Использовать два параметра типа оис. ов1пч Зуясещг с1аяя Нпщ ( /* Определить, имеется ли у числовых значений переменных х и ч общий множитель. Если имеется, то'возвратить наименьший и наибольший множители посредством параметров типа опс. */ рпЬ1гс Ьоо1 Назоошгассог(тпс х, 1пс у, опс 1пв 1еазт, очг 1пс чгеасезс) ( 1пг гг ьпс щах = х < у ? х '- уг Ьоо1 11гвг = ггоег 1еаяс = 1г дгеавевт = 1г Найти наименьший и наибольший общий множитель. Гог(1 2г г < шах/2 + 1; 1++) ( гг ( ((у%1) ==О) ь ((хь).) ==О) ) ( 11(тггвг) ( 1еавг = ).г Гггвг = Га1вег ) дгеасевг = ьг ) 11(1еавс != 1) геспгп Ггоег е1ве гегогп Га1яег ) ) с1авв оещоопс ( вгаг1с чогб Нагп() ( Ниш оЬ = пеи Нпш()г 1пв 1ст, уст) 1г(оЬ.Навоощгассог(231, 105, опт 1ст, опп дст)) ( Глава 8. Подробнее о методах и классах 227 Сопяс1е.нтттеььпе("Наименьший общий множитель "чисел 231 и 105 равен " + 1ст); сопяс1е.хг1геь1пе("наибольший общий мйожитель "чисел 231 и 105 равен " + дст); ) е1яе сопяо1е.хт1геь1пе("Общий множитель у чисел 35 и 49 отсутствует.") 11(оЬ.Наясошрастсг(35, 51, опт 1сс, опт чст)) ( Сопяо1е.нг1теъгпе("Наименьший общий множитель "чисел 35 и 51 равен " + 1сг)г Сопяо1е.нгттеътпе("Наибольший общий множитель "чисел 35 и 51 равен " + чст)) ) е1яе Сспяо1е.нт1те11пе("Общий множитель у чисел 35 и 51 отсутствует.") Обратите внимание на то, что значения присваиваются переменным 1СГ и ест в методе Маьп () до вызова метода НаяСощт асгог () .

Если бы параметры метода НаяСощрасгог () были типа гег, а не опт, это привело бы к ошибке. Данный метод возвращает логическое значение ггпе или га1яе, в зависимости от того, имеется ли общий множитель у двух целых чисел. Если он имеется, то посредством параметров типа ошб возвращаются наименьший и наибольший общий множитель этих чисел. Ниже приведен результат выполнения данной программы. Наименьший общий множитель чисел 231 и 105 равен 3 Наибольший общий множитель чисел 231 и 105 равен 21 Общий множитель у чисел 35 и 51 отсутствует. Использование модификаторов ген и оис для ссылок на объекты Применение модификаторов ген и ООГ не ограничивается только передачей значений обычных типов.

С их помощью можно также передавать ссылки на объекты. Если модификатор гей или опг указывает на ссылку, то сама ссылка передается по ссь|лке. Это позволяет изменить в методе объект, на который указывает ссылка. Рассмотрим в качестве примера следующую программу, в которой ссылочные параметры типа ге 1 служат для смены объектов, на которые указывают ссылки.

!/ Поменять местами Лве ссылки. пагад Яуягеач с1аяя Несянар ( тпт а, Ь; рпЬ1тс Нетянар(тпт 1, 1пт 3) ( а=я; Ь= 3: ) 228 Часть (. Язык С№ роЬ11с чего 5ьон() ( Сопяо1е.ыгтсеюпе("а: (0), Ь: (1)"„ а, Ь); ) Этот метод изменяет свои аргументы. роЫтс чотб Янар(гет Ветзиар оЫ, гет аетзнар оЬ2) ( яетзиар гг Г = оЬ1; оЫ = оЬ24 ОЬ2 ) ) с1аяя Кетзиарпеюо ( ясасгс чо15 Мати() ( аег"Беар х = пеи аетзиар(1, 2); Кетзиар у = пеи Кетзиар(3, 4); сопяо1е.нг1ге("х до вызова: "); х.

Явои (); Сопяо1е.ыгьге("у до вызова: "); у.звон (); Сопяо1е.кг1сеюпе() // Смена объектов, на которые ссылаются аргументы х и у. х.Яиар(гет х, гет у); Сопяо1е.ыгтсе("х после вызова: ") х.ЯЬои(); Сопяо1е.нгтсе("у после вызова: ")) у.звон(); ) ) При выполнении этой программы получается следующий результат. х до вызова: а: 1, Ь: 2 у до вызова: а: 3, Ь: 4 х после вызова: а: 3, Ь: 4 у после вызова: а: 1, Ь: 2 В данном примере в методе Беар () выполняется смена объектов, на которые ссылаются два его аргумента.

До вызова метода Биар () аргумент х ссылается на объект, содержащий значения 1 и 2, тогда как аргумент у ссылается на объект, содержащий значения 3 и 4. А после вызова метода Быар () аргумент х ссылается на объект, содержащий значения 3 и 4, тогда как аргумент у ссылается на объект, содержащий значения 1 и 2. Если бы не параметры типа гег, то перестановка в методе Быар () не имела бы никаких последствий за пределами этого метода. Для того чтобы убедиться в этом, исключите параметры типа ге г из метода Беар () .

Глава 8. Подробнее о методах и кяассах 229 Использование переменного числа аргументов При создании метода обычно заранее известно число аргументов, которые будут переданы ему, но так бывает не всегда. Иногда возникает потребность создать метод, которому можйо было бы передать произвольное число аргументов. Допустим, что требуется метод, обнаруживающий наименьшее среди ряда значений. Такому методу можно было бы передать не менее двух, трех, четырех или еще больше значений.

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

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

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

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