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

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

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

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

Дополнительные главы////избежать тысячнее работаетписемсуказанием,чтомояпрограммаConsole.WriteLine("Этапрограмманеработает!");S t u d e n t si = new S t u d e n t ( " S t u d e n t 1 " ,1);S t u d e n t s2 = new S t u d e n t ( " S t u d e n t 2",2);//display thetwostudentsConsole.WriteLine("Student 1Console .WriteLine ( "Student 2// Теперьтребуем от класса//студентов=",si.ToString()) ;=",s2.. T o S t r i n g ( ) ) ;Student вывести всехStudent.OutputAllStudents();//Ожидаем п о д т в е р ж д е н и япользователяConsole.WriteLine("Нажмите <Enter> для"завершения"+программы., .

" ) ;Console.Read();}}public{spppclasst a t irivarivaubliStudentc ArrayListallStudentstestringsStudentName;teint nID;c S t u d e n t ( s t r i n g sName,sStudentNamenID = nID;==newintArrayList();nIDsName;allStudents.Add(this);// T o S t r i n g - в о з в р а щ а е т имя и и д е н т и ф и к а т о рpublicoverridestringToString()s t r i n g s = String.Format("{0}({l})",sStudentName,returnpublicстудентаnID);s;s t a t i cvoidOutputAllStudents()IEnumerator i t e r = allStudents.GetEnumerator();// Использую цикл for вместо обычного whilef o r ( i t e r . R e s e t ( ) ;iter.Current! = null;iter.MoveNext()){Students=(Student) i t e r . Current-Console .WriteLine ("Student}={0}",s.ToString());}После удаления из программы всех ошибок времени компиляции можно перехо­дить к делу.Несмотря на то что все ошибки изгнаны, остались еще два предупреждения (они по­являются в окне E r r o r List с пиктограммой в виде желтого треугольника).

Предупрежде-Глава 21. Использование интерфейса Visual Studio513ния означают потенциальные проблемы, которые недостаточно серьезны, чтобы считатьих ошибками. Однако это не значит, что их можно игнорировать. Хорошенько изучитеих, поскольку они могут указать на ошибки в вашем коде. Хотя, конечно, расшифровкасообщений компилятора порой труднее, чем расшифровка египетских иероглифов.Просто для интересующихся — на прилагаемом компакт-диске имеется де­монстрационная программа V S D e b u g G e n e r i . e s , в которой вместо хране­ния a l l S t u d e n t s в A r r a y L i s t используется L i s t < T > , метод O u t p u t A H S t u d e n t s () оказывается гораздо проще — и все это работает!Пошаговая отладкаПри обнаружении наличия ошибки в программе одним из наилучших первых шаговв ее локализации и устранении является возможность отладчика, известная под названи­ем пошагового выполнения (single stepping).

Для этого воспользуйтесь командой менюD e b u g ^ S t e p O v e r или клавишей <F10>.Даже если вы не очень хорошо запоминаете функциональные клавиши, в этомслучае следует сделать исключение. Использовать меню D e b u g для доступак пошаговому выполнению Step O v e r и Step Into — непозволительно медлен­но (панель инструментов лучше меню, но и ей далеко до клавиатуры).Нажатие <F10> приведет к выполнению демонстрационной программы V S D e b u g дооткрывающей фигурной скобки функции M a i n ( ) .

Повторное нажатие <F10> выполнитфункцию M a i n ()до первой выполнимой инструкции (executable statement) — инструк­ции, которая что-то делает на самом деле. Комментарии и объявления такими инструк­циями не являются, а вот C o n s o l e . W r i t e L i n e () определенно осуществляет некото­р ы е действия. На рис. 21.15 изображено окно Visual Studio после двукратного пошагово­го выполнения.Puc. 21.15. Пошаговый режим приводит к выполнению программы по однойинструкции514Часть VII.

Дополнительные главыПеред началом процесса отладки Visual Studio перекомпилирует программу,так что не нервничайте преждевременно.Обратите внимание, что первая строка программы подцвечена. Это — очередная ин­струкция, которая будет выполнена в пошаговом режиме. Запомните — желтая строкаеще не выполнена.Обратите также внимание на окно, открытое внизу, с именем Locals (оно может на­ходиться в минимизированном состоянии; на рис. 21.15 оно показано открытым).В этом окне выводится список трех локальных переменных, т.е.

переменных, объяв­ленных в текущей функции. Переменные s i и s 2 типа V S D e b u g . S t u d e n t имеют зна­чения n u l l , поскольку им еще не были присвоены значения. Столбец Туре предостав­ляет информацию о полном имени класса, включая пространство имен. Переменнаяa r g s типа s t r i n g [] (массив строк) с длиной 0 означает, что программе не были пере­даны аргументы. Это тоже очень важная возможность отладчика.Еще одно нажатие <F10> приводит к выполнению вывода предупреждения функциейW r i t e L i n e ( ) . Чтобы убедиться в этом, нажмите комбинацию клавиш <Alt+Tab> длятого, чтобы переключиться на программу V S D e b u g .

В консольном окне вы увидите однустроку — Э т а п р о г р а м м а не р а б о т а е т !. Это именно то, что и ожидалось. Еще разнажмите <Alt+Tab> для возврата в Visual Studio.< A l t + T a b > — команда переключения между программами Windows, исполь­зуемая для передачи управления от одной программы к другой. Она"активизирует" главное окно программы, в которую вы переключаетесь. Когдаактивен отладчик, программа V S D e b u g выполняется, но находится в приоста­новленном состоянии. Клавиши <Alt+Tab> можно использовать где угодно,а не только в Visual Studio.Естественно, очередное нажатие <F10> приводит к выполнению строки S t u ­d e n t si = .... Поток управления останавливается на следующей строке функцииM a i n ( ) , выполняя конструктор первого объекта S t u d e n t з а один шаг.

Конструкторвсегда выполняется, даже если вы этого и не видите.В окне Locals переменная s 2 остается равной n u l l , но переменная s i теперь содер­жит объект класса S t u d e n t . Небольшой знак "плюс" слева от si означает, что объектможно открыть и посмотреть на его "внутренности". После щелчка на этом значке окноLocals приобрело вид, показанный на рис. 21.16, раскрывая содержимое объекта s i .Первая и вторая записи в экземпляре объекта — члены n I D типа iN a m e типа s t r i n g .

Третья з а п и с ь — заголовок списка статическихданном случае это единственный член данных a l l S t u d e n t s типаскольку данный объект также имеет свое содержимое, слева от негокий значок "плюс", позволяющий ознакомиться с этим содержимым.nt и sStudentчленов к л а с с а — вA r r a y L i s t . По­находится малень­Взгляните внимательнее на значения двух членов экземпляра: s S t u d e n t N a m e имеетзначение " S t u d e n t 1 " , которое выглядит вполне корректно, a n I D имеет значение О,что корректным не назовешь. Это значение должно быть равно 1 — значению, передан­ному конструктору. Что-то в конструкторе пошло не так...Беспокоясь о программировании на С# вообще и о своей карьере в частности, я вы­бираю команду меню Debug<=>Stop D e b u g g i n g . Затем я нажимаю <F10> три раза: одинраз для перезапуска программы, и два раза для того, чтобы пройти W r i t e L i n e () —Глава 21.

Использование интерфейса Visual Studio515тут, похоже, все нормально работает. Но вместо того чтобы нажать <F10> еще раз и вы­полнить конструктор, не заходя в него, я нажимаю <F11> и вхожу в конструктор.Рис, 21.16. Окно Locals позволяет получить детальную информацию о со­стоянии объектаДействие клавиш <F10> и <F11> идентично, когда вы выполняете инструкцию,не являющуюся вызовом функции некоторого вида.

Пошаговое выполнение по­средством <F11> (step into) приводит к пошаговому выполнению вызываемойфункции. Однако оба пошаговых режима не позволяют заходить в библиотечныефункции .NET. Исходный текст реализации библиотеки закрыт для входа.В этот раз в окне появляется конструктор с выделенной первой строкой. Далее следу­ет открыть интересующий объект t h i s в окне Locals. Затем несколько раз нажать<F10>, чтобы перейти к точке инициализации n I D .Каждое изменяемое значение в окне Locals выделяется красным цветом.Весь в ожидании, я нажимаю <F10> еще раз.

И н т е р е с н о — значение t h i s . n I D неизменяется, несмотря на то что значение n I D в окне Locals стало равным 1.Если вы скомпилируете демонстрационную программу V S D e b u g с использо­ванием команды D e b u g ^ B u i l d V S D e b u g вместо применения клавиши <F10>для пошагового прохода в отладчике, в окне E r r o r List вы увидите два упомя­нутых предупреждения. Если вы посмотрите на конструктор класса S t u d e n t ,то увидите волнистую пурпурную линию под присваиванием n I D = n I D , ука­зывающую на проблему. Если бы вы сделали это перед тем, как переходитьк отладке, возможно, вы бы смогли исправить ошибку, не прибегая к отладчи­ку. К сожалению, эта линия не видна на рис.

21.16, так как на нем показан кодв отладчике.516Часть VII. Дополнительные главыВернемся к анализируемой строке. Следующее выражение просто присваивает значе­ние n I D самому себе:nID = nID;Это законно, но бесполезно и совсем не то, что требовалось. Вот что было нужно насамом деле:this.nID=nID;//Присваиваниеаргументапеременной-членуМожно прекратить отладку и перекомпилировать программу, после чего, по­местив курсор над этим присваиванием, посмотреть еще раз на предупрежде­ние во всплывающем окне.

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

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

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

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