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

1629295403-b876e2087bddebea4bc9666fb2377a02 (846199), страница 32

Файл №846199 1629295403-b876e2087bddebea4bc9666fb2377a02 (С для чайников) 32 страница1629295403-b876e2087bddebea4bc9666fb2377a02 (846199) страница 322021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Программу моно также запустить и с использованием интерфейса Windows, дважды щелкнув наимени в окне или в Проводнике Windows.170Часть III. Объектно-основанное программироваРис. 7.4. Выполнение программы DisplayArguments. ехе из при­глашения DOS приводит к выводу информации о ее аргументахКак показано на рис. 7.5, двойной щелчок на имени D i s p l a y A r g u m e n t s приводитк запуску программы без передачи ей аргументов.Puc.

7.5. В Проводнике Windows вы можете запустить про­грамму посредством двойного щелчка на ее имениПеретаскивание и отпускание одного или нескольких файлов на пиктограмму D i s ­p l a y A r g u m e n t s . е х е в Проводнике Windows приводит к выполнению программы,аналогичному вводу в командной строке D i s p l a y A r g u m e n t sименафайлов.

Одно­временное перетягивание и отпускание файлов a r g l . t x t и a r g 2 . t x t н а пиктограммуD i s p l a y A r g u m e n t s дает результат, показанный на рис. 7.6.Для того чтобы перетащить нескольконажмите клавишу <Ctrl> и выберитепоказано на рис. 7.6. Теперь нажмитефайлов и отпустите их на пиктограммуГлава 7. Функции функцийфайлов, выберите в списке первый файл,остальные требующиеся вам файлы, каккнопку мыши, перетяните все множествоприложения D i s p l a y A r g u m e n t s .171Puc. 7.6. Windows позволяет перетащить и отпустить файлы на пик­тограмму консольного приложенияВывод программы D i s p l a y A r g u m e n t s в этом варианте запуска показан на рис.

7.7.Puc. 7.7. Перетаскивание файлов на пиктограмму приложения дает тотже эффект, что и указание их имен в командной строке172Часть III. Объектно-основанное программированиеОбратите внимание, что конкретный порядок передачи файлов приложениюпри использовании технологии перетаскивания не определен.Ф у н к ц и я W r i t e L i n e ()Вы могли заметить, что функция WriteLine (), использовавшаяся в рассматривае­мых программах, представляет собой не более чем вызов функции класса Console:Console.WriteLine("Это — вызов ф у н к ц и и " ) ;Функция WriteLine () — одна из множества предопределенных функций, предос­тавляемых библиотекой .NET. Console — предопределенный класс, предназначен­ный для использования в консольных приложениях.Аргументом функции WriteLine (), применявшимся в примерах выше, являетсястрока string.

Оператор + позволяет программисту собрать эту строку из несколь­ких строк или строк и переменных встроенных типов, например, так:string s = "Маша";Console. WriteLine ("Меня зовут " + s +" и мне " + 3 + " г о д а " ) ;В результате вы увидите выведенную на экран строку "Меня зовут Маша и мнеЕв'года".Второй вид функции WriteLine () допускает наличие более гибкого множества ар­гументов, например:Console .WriteLine ("Меня зовут { о } и мне {l}"Маша", 3 ) ;года",Первый аргумент такого вызова называется форматной строкой.

В данном примерестрока "Маша" вставляется вместо символов {0} — ноль указывает на первый аргу­мент после командной строки. Целое число 3 вставляется в позицию, помеченную как{l}. Этот вид функции более эффективен, поскольку конкатенация строк не так про­ста, как это звучит, и не столь эффективна.Кроме того, в этом варианте в форматной строке может использоваться ряд управляю­щих элементов, которые указывают, как именно должны выводиться аргументы функ­ции WriteLine (). Вы познакомитесь с ними в главе 9, "Работа со строками в С#".Передача аргументов в Visual Studio 2005Для того чтобы запустить программу в Visual Studio 2005, сначала удостоверьтесь,что она собрана без ошибок.

Выберите команду меню Builds Build имя программыи убедитесь в отсутствии в окне Output сообщений об ошибках. Корректное сообщениев этом окне должно выглядеть какBuild: 1 s u c c e e d e d , 0 f a i l e d , 0 s k i p p e dЕсли в окне Output вы видите что-то другое — ваша программа не запустится.Выполнить программу без передачи аргументов — дело одного щелчка. После того какпрограмма успешно собрана, выберите команду меню Debug^Start Debugging (или на­жмите клавишу <F5>) или Debug^Start Without Debugging (клавиши <Ctrl+F5>) и полу­чите желаемое.Глава 7. Функции функций173По умолчанию Visual Studio выполняет программу, не передавая ей аргументов. Ее:это не то, что вам нужно, вы должны указать Visual Studio, какие аргументы следуетредавать.

Для этого выполните такие шаги.1. Откройте окно Solution Explorer, для чего воспользуйтесь командой меш!V i e w : Solution Explorer.Окно Solution Explorer содержит описание вашего решения. Решение состоит изодного или нескольких проектов. Каждый проект описывает программу. Напрнмер, проект D i s p l a y A r g u m e n t s гласит, что P r o g r a m .

c s — один из файлевашей программы, и что ваша программа является консольным приложеннаяПроект также содержит описание других свойств, включая аргументы, испоизуемые при запуске программы D i s p l a y A r g u m e n t s из Visual Studio.2. Щелкните правой кнопкой мыши на DisplayArguments в Solution Eхplorer и выберите из раскрывающегося меню команду Properties, как показано на рис.

7.8.При этом перед вами появится окно вида, представленного на рис. 7.9, в которойможно указать множество различных настроек вашего проекта — только вот жлать этого без глубокого понимания, что именно вы настраиваете, ни в коем еличае не следует.Puc. 7.8. Обращение к свойствам проекта посредством щелчка правой кноп­кой мыши в Solution Explorer3. На вкладке DisplayArguments выберите в списке вкладок в левой части]Debug.4. В поле Command Line Arguments группы Start Options введите аргументы,!которые вы хотите передать в программу при запуске ее из Visual Studio.174Часть III. Объектно-основанное программированиеPuc.

7.9. Введите аргументы программы в поле Command Line Argumentsна вкладке Debug5. Сохраните и закройте окно Properties, а затем выполните программу с помощьюкоманды меню Debug^Start.Как показано на рис. 7.10, Visual Studio откроет окно DOS с ожидаемым резуль­татом выполнения программы.Puc. 7.10. Передача аргументов консольному приложению в Visual StudioГлава 7. Функции функцийЕдинственным отличием между выводом программы из Visual Studio 2005 и из Ямандной строки является отсутствие на экране строки с именем самой программы и siреданными ей аргументами.176Часть III. Объектно-основанное программированиеГлава 8Методы класса> Передача объекта в функцию> Преобразование функции класса в метод> Что такое t h i s> Генерация документацииосле статических функций, рассматривавшихся в главе 7, "Функции функций",мы перейдем к нестатическим методам класса.

Статические функции принад­лежат всему классу, в то время как методы — экземплярам класса. Кстати, многие профаммисты предпочитают называть все одним словом -— либо методами, либо функциями,не делая того различия между ними, на которое обращено ваше внимание здесь. Однакоимеющееся отличие между статическими и нестатическими функциями очень важно.Ссылка на объект передается в функцию точно так же, как и переменная, принадле­жащая типу-значению, с единственным отличием — объекты всегда передаются в функ­цию только по ссылке.Следующая маленькая программа продемонстрирует, каким образом можнопередать объект в функцию:// P a s s O b j e c tusing S y s t e m ;namespace{public}-демонстрацияпередачиобъектаPassObjectclasspublicStudentstringsName;}public c l a s s P r o g r a m(public s t a t i c v o i d M a i n ( s t r i n g [ ]{Studentstudent=newargs)Student();вфункцию// П р и с в а и в а е м имя путем н е п о с р е д с т в е н н о г о//полю о б ъ е к т аConsole.WriteLine("Сначала:");student.sName ="Madeleine";OutputName(student);обращенияк// Изменяем имя с и с п о л ь з о в а н и е м функцииConsole.WriteLine("Послеизменения:");SetName(student,"Willa");OutputName(student);//Ожидаем п о д т в е р ж д е н и япользователяConsole.WriteLine("Нажмите <Enter> для " +" з а в е р ш е н и я п р о г р а м м ы .

. . ") ;Console.Read();// OutputNamepublicstatic- Вывод имени с т у д е н т аvoid OutputName(Studentstudent){// Вывод т е к у щ е г о имени с т у д е н т аConsole.WriteLine("Student.sName=student.sName);{o}",}// SetName - и з м е н е н и е имени с т у д е н т аpublics t a t i c void SetName(Studentstudent,stringsName){student.sName}}=sName;}Программа создает объект s t u d e n t , в котором не содержится ничего, кроме име~Она сначала присваивает имя непосредственно и выводит его с помощью функции OutputName().Затем программа изменяет имя посредством функции S e t N a m e ( ) .

Поскольку всеобъекты в С# передаются в функции по ссылке, изменения, внесенные в объект studd e n t в функции, остаются и после возврата из нее. Когда функция M a i n () опять вьзывает функцию для вывода имени студента, последняя выводит измененное имя, что видно из вывода программы на экран:Сначала:Student.sName = MadeleineПосле изменения:Student.sName = Willa.Нажмите < E n t e r > для з а в е р ш е н и япрограммы.Обратите внимание, что при передаче ссылочного объекта в функцию ключевое слово r e f не используется. Функция, которой объект передается по ссылке, может посредством этой ссылки изменить только содержимое объекта, вне в состоянии присвоить новый объект, как показано в следующем фрагментисходного текста:178Часть III.

Объектно-основанное программированStudent s t u d e n t = n e w S t u d e n t ( ) ;student.Name = " M a d e l e i n e " ;OutputName ( s t u d e n t ) ;Console. W r i t e L i n e ( s t u d e n t . N a m e ) ;I // И с п р а в л е н н а яpublicstaticфункцияvoid//Всееще"Madeleine"O u t p u t N a m e () :OutputName (Studentstudent)}student=newstudent.NameStudent();=//////He п р и в о д и т к изменениюобъектаs t u d e n t внеOutputName()"Pam";}Класс представляет собой набор элементов, описывающий объект или концепцию ре­ального мира. Например, класс V e h i c l e может содержать данные о максимальной ско­рости, максимальном разрешенном весе, количестве пассажирских мест и т.д. Однакотранспортное средство имеет и активные свойства: возможность тронуться с места, ос­тановиться и т.п.

Эти действия можно описать функциями, работающими с даннымитранспортного средства. Эти функции представляют собой такую же часть класса V e h i ­cle, как и его члены-данные.Определение функций - статических членовНапример, вы можете переписать программу из предыдущего раздела не­много иначе:// P a s s O b j e c t T o M e m b e r F u n c t i o n - д л я р а б о т ы// используется с т а т и ч е с к а я ф у н к ц и я - ч л е нUBing S y s t e m ;сполямиобъектаnamespace PassObjectMemberToFunction{publicclassStudent(publicstringsName;// OutputName - в ы в о д и м е н и с т у д е н т аpublicstatic void OutputName(Studentstudent){/ / Вывод т е к у щ е г о и м е н и с т у д е н т аConsole.WriteLine("Student.sName=student.sName);{o}",}// SetName - и з м е н я е м имя с т у д е н т аpublic s t a t i c v o i d S e t N a m e ( S t u d e n tГлава ft Методы классаstudent,179string{sName)s t u d e n t .

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

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

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

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