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

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

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

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

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

И вовторых, он возвращает посредством параметров опс наименьший и наибольший общий множитель двух чисел, если таковые обнаруживаются. // Использовать два параметра опг. пзтпч зузсеш; с1азз Нпш ( /* Определить, имеется ли у числовых значений переменных х и ч общий множитель. Если имеется, то возвратить наименьший и наибольший множители посредством параметров опг. */ риь1№с ьоо1 назсощгасгог(тпс х, 1пк у, опг тпг 1еазг, опс 1пс сгеасезс) ( 1пс 1) тпс шах = х < у ? х: ут Ьоо1 Гтгвс = Ггпет 1еазг = 1) дгеагезк = 1т // Найти наименьший и наибольший общий множитель. Гог(1=2т 1 <= шах/2 + 1т 1+ь) ( 11 ( ( (уат) ==О) а ((х%1) ==О) ) ( 1г(11гзг) ( 1еазс = тт т№гзс = та1зет 1 дгеасезс = тт ) 1г(1еазс != 1) гессгп Сгпет е1зе геспгп та1зе) ) ) с1азз Оешооиг ( зсасас чогб Иатп() ( Нош оЬ = пен Нпш() т тпс 1ст, дст) Глава В.

Подробнее о методах и классах 219 1Г(оЬ.Наэсошуасгог(231, 105, оис 1сг, оиг осг) ) ( Сопео1е.Иг1ге( ъпе (" Наименьший общий множитель " + "чисел 231 и 105 равен " + 1сг)х Сопео1е.нг1сеь1пе("Наибольший общий множитель " + "чисел 231 и 105 равен " + аист)( ) е1ве Сопао1е.нг1геъкпе("Общий множитель у чисел 35 и 49 отсутствует."); 11(оь.наасошгассог(35, 51, опс 1сг, оис дсх)) ( Сопзо1е.нгхге( ъпе("Наименьший общий множитель " + "чисел 35 и 51 равен " + 1сг)х Сопео1е.иг1сеъъпе("Наибольший общий множитель " + "чисел 35 и 51 равен " + Осе)) ) е1ее Сопзо1е.Иг1се( ьпе("Общин множитель у чисел 35 и 51 отсутствует.")) Обратите внимание на то, что значения присваиваются переменным 1сг и дог в методе ма1п () до вызова метода назсошрасгог () . Если бы параметры метода назсошрассог () были типа гег, а не Опг, это привело бы к ошибке.

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

Рассмотрим в качестве примера следующую программу, в которой ссылочные параметры ген служат для смены объектов, на которые указывают ссылки. О Поменять местами лве ссылки. пэ1пд Зуесеш) с1аев вегенер ( хпг а, Ь; риЬ1хс Нетэнар(1пс 1, 1пг 3) ( а = 1) 220 Часть ). йзык С» Ь=); ) рпЬ11с то10 5пои() ( Сопзо1е.Иг»се(,1пе("а: (0), Ь| (1)", а, Ы: ) // Этот метод изменяет свои аргументы. рпЬ1»с то14) 5иар(геЕ аесэиар оЫ, геЕ аегзнар оЬ2) ( КЕЕ5иар Г) Г=оЫ) оЫ = оЬ24 оЬ2 = гь ) ) с1азз аетзнарОеюо ( зсапъс то»О Ма»п() ( аегзнар х = пен аеЕзиар(1, 2); ае»виар у = пен аеЕзнар(3, 4); Сопзо1е.иг»се("х до вызова: "); х.звон()4 Сопзо1е.иг1се("у до вызова: "); у.5пон П / Сопзо1е.иг»сеъ»пе(); // Смена объектов, на которые ссылаются // аргументы х и у.

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

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

Для того чтобы убедиться в этом, исключите параметры гег из метода Беар () . Использование переменного числа аргументов При создании метода обычно заранее известно число аргументов, которые будут переданы ему, ио так бывает ие всегда. Иногда возникает потребность создать метод, которому можно было бы передать произвольное число аргументов.

Допустим, что требуется метод, обнаруживающий наименьшее среди ряда значений. Такому методу можно было бы передать ие менее двух, трех, четырех или еще больше значений. Но в любом случае метод должен возвратить наименьшее из этих значений. Такой метод нельзя создать, используя обычные параметры. Вместо этого придется воспользоваться специальным типом параметра, обозначаюшим произвольное число параметров. И это делается с помошью создаваемого параметра типа рагавв. Для объявления массива параметров, способного принимать от нуля до нескольких аргументов, служит модификатор рагавв. Число элементов массива параметров будет равно числу аргументов, передаваемых методу.

А для получения аргументов в программе организуется доступ к данному массиву. Ниже приведен пример программы, в которой модификатор рагавв используется для СОЗдаНИя МЕтОда МЬПт/а1 (), ВОЗВраШаЮШЕГО НаИМЕНЬШЕЕ Срсдп ряда ЗадаННЫХ ЗНаЧЕНИй. // Продемонстрировать применение модиеикатора рагавв. пахни яувселс с1авв Мхп ( роЬ11< хпс М1пуа1(рагавв хпс[) повв) ( ).пг вт 1Е(пива.ьепок)т == 0) ( Сопво1е.кг[кеЬ1пе("Ошибка: нет аргументов."); гегпгп От ) в = пива(0)т Гог(гпс 1=1т х < поев.ьепдспт 1++) гт(поев[1[ < в) в = спмв[1)т гегпгп вт ) <1авв Рагаввпево ( всастс но1б Ма1п() ( М1П ОЬ = Пви МХП()т 1пс вхпт 1пг а = 10, Ь Г 20т 222 часть (, язык Сз // Вызвать метод с двумя значениями.

шхп = оЬ.М1пЧа1(а, Ь) т Сопзо1е.Игхгевхпе("Наименьшее значение равно " + шхп)т // Вызвать метод с тремя значениями. шхп = оЬ.М1пЧа1(а, Ь, -1)т Сопзо1е.Игвгеввпе("Наименьшее значение равно " + шхп) // Вызвать метод с пятью значениями. шхп = оЬ.МтпЧа1(18, 23, 3, 14, 25)т сопзо1е.иг1геьхпе("наименьшее значение равно " + ш1п)т // Вызвать метод с массивом целых значений. 1пс[) агчз = ( 45, 67, 34, 9, 112, 8 )т шгп = оЬ.М1пЧа1(агчв)т Сопзо1е.нг1сеЬВпе("Наименьшее значение равно " + ш1п) ) При выполнении этой программы получается следующий результат: Наименьшее значение равно 10 Наименьшее значение равно -1 Наименьшее значение равно 3 Наименьшее значение равно 8 Всякий раз, когда вызывается метод М1пЧа1 (), ему передаются аргументы в массиве пцшз. Длина этого массива равна числу передаваеМых аргументов.

Поэтому с помощью метода М1пЧа1 () можно обнаружить наименьшее среди любого числа значений. Обратите внимание на последний вызов метода мапча1 () . Вместо отдельных значений в данном случае передается массив, содержащий ряд значений. И такая передача аргументов вполне допустима. Когда создается параметр типа рагашз, он воспринимает список аргументов переменной длины или же массив, содержащий аргументы. Несмотря на то что параметру типа рагашз может быть передано любое число аргументов, все они должны иметь тип массива, указываемый этим параметром. Например, вызов метода М1пЧа1 () шхп = оЬ.МхпЧа1(1, 2.2) т // Ошибка! считается недопустимым, поскольку нельзя автоматически преобразовать тип боцЬ1е (значение 2.2) в тип 1пс, указанный для массива пцшз в методе м1пча1 () .

Пользоваться модификатором рагашз следует осторожно, соблюдая граничные условия, так как параметр типа рагашз может принимать любое число аргументов — даже нулевое! Например, вызов метода М1пЧа1 () в приведенном ниже фрагменте кода считается правильным с точки зрения синтаксиса С№. шхп = оЬ.МтпЧа1()т // нет аргументов шхп = оЬ.МтпЧа1(3)т // 1 аргумент Именно поэтому в методе м1пуа1() организована проверка на наличие в массиве пцшз хотя бы одного элемента перед тем, как пытаться получить доступ к этому элементу.

Если бы такой проверки не было, то при вызове метода Мзпча1 () без аргументов возникла бы исключительная ситуация во время выполнения. (Подробнее об исключительных Глава 8. Подробнее о методах н классах 223 ситуациях речь пойдет в главе (3.) Более того, код метода Мгпуа1 () написан таким образом, чтобы его можно было вызывать с одним аргументом. В этом случае возвращается этот единственный аргумент. У метода могут быть как обычные параметры, так и параметр переменной длины, В качестве примера ниже приведена программа, в которой метод Яьонйтдя () принимает один параметр типа ясгдпд, а также целочисленный массив в качестве параметра типа рагащв.

// Испольэовать обычный параметр вместе с параметром // переменной длины типа ратащв. ця1пд Яувселц с1авв Мус1аяв ( роЬ11с чо1б ЯЬоийхдв(вкх1пд щвд, рахащв 1пк(] пцщв) ( Сопво1е.иг1ке(щвд + ": ") т Гохеасй(1пс х 1п поев) сопяо1е.иххье(1 ь " ")т сопяо1е.ихгкеьвпе()т ) с1аяя Ракащярещо2 ( всак1с чо1б Маьп() ( МуС1аяя оЬ = пен МуС1аяв()т оЬ.ЯЬоиАхдв("Это ряд целых чисел", 1, 2, 3, 4, 5)т оЬ.ЯЬоийхдв("й это еще два целых числа 17, 20)т Вот какой результат дает выполнение этой программы: Это ряд целых чисел: 1, 2, 3, 4, 5 А это еще два целых числа: 17, 20 В тех случаях, когда у метода имеются обычные параметры, а также параметр переменной длины типа рагащя, он должен быть указан последним в списке параметров данного метода.

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

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