Вернемся к анализируемой строке. Следующее выражение просто присваивает значе ние n I D самому себе:
n I D = n I D ;
Это законно, но бесполезно и совсем не то, что требовалось. Вот что было нужно на самом деле:
t h i s . n I D = n I D ; / / П р и с в а и в а н и е а р г у м е н т а п е р е м е н н о й - ч л е н у
Можно прекратить отладку и перекомпилировать программу, после чего, по местив курсор над этим присваиванием, посмотреть еще раз на предупрежде ние во всплывающем окне. Оно гласит "Assignment made to same variable; did you mean to assign something else?" ("Выполняется присваивание той же пере менной. Не намеревались ли вы выполнить иное присваивание?"). Можно ли выразиться понятнее?
Можно попробовать изменить строку на t h i s . n I D = n I D и снова пошагово вы полнить программу. (С некоторыми ограничениями вы можете также просто изменить исходный текст и продолжить отладку — эта возможность Visual Studio называется Edit and Continue — поищите информацию о ней в справочной системе.)
В этот раз следует аккуратно проверить объекты si и s2 в окне Locals после их кон струирования, но, кажется, все выглядит хорошо. Однако пошаговое выполнение оче редного вызова W r i t e L i n e () дает странный вывод на экран:
Э т а п р о г р а м м а н е р а б о т а е т ! S t u d e n t 1 =
Что могло случиться на этот раз? Вероятно, T o S t r i n g () ничего не возвращает. Не обходимо начать сначала, так что пока что я прекращаю отладку.
Главное - вовремя остановиться
Вероятно, вы уже замаялись в очередной раз пошагово проходить программу. Поша говый проход большой программы представляется вообще сплошным кошмаром.
Отладчик Visual Studio позволяет указать, что вы хотите остановить программу в ее конкретной точке. Это достигается путем создания так называемой точки останова (breakpoint).
Для этого нужно щелкнуть мышью на области слева от интересующей команды W r i t e L i n e ( ) , где предполагается приостановить выполнение программы. Возле стро ки появляется маленький красный кружок, а сама строка подцвечивается красным цве том, что свидетельствует о наличии точки останова. Теперь можно указать программе, что она может начинать выполнение, посредством команды меню D e b u g ^ S t a r t или кла виши <F5>. В результате ни о чем не нужно беспокоиться, зная, что программа остано вится, дойдя до указанной строки.
Как и должно быть, программа начинает работу и останавливается в заданной точке, как показано на рис. 21.17. Обратите внимание на желтую стрелку, появляющуюся в красном кружке, и на подцвечивание инструкции W r i t e L i n e () желтым цветом.
Далее следует вновь три раза нажать <F10>, чтобы добраться до инструкции W r i t e L i n e ( ) , которая выводит информацию о студенте 1, и затем — <F11>, чтобы попасть в метод T o S t r i n g ( ) .