Иллюстрированный самоучитель по VB.NET



Отладка объектно-ориентированных программ - часть 2


33 Get

34 Return m_CurrentLink

35 End Get

36 End Property

37 Public Readonly Property GetFirstLink() As Link

38 Get

39 Return m_FirstLink

40 End Get

41 End Property

42

43 ' Вложенный класс для ссылок

44 Friend Class Link

45 Private m_MyData As String

46 Private m_NextLink As Link

47' Private m_ParentLink As Link

48 Friend Sub New(ByVal myParent As Link. ByVal theData As String)

49 m_MyData = theData

50 m_Parentlink = Me

51 m_NextLink = myParent

52 End Sub

53 Friend Sub New(ByVal theData As String)

54 m_MyData = theData

55 End Sub

56 Friend Readonly Property MyData() As String

57 Get

58 Return m_MyData

59 End Get

60 End Property

61 Friend Readonly Property NextLink() As Link

62 Get

63 Return m_NextLink

64 End Get

65 End Property

66 End Class

67 End Class

68 End Module

Результат работы программы показан на рис. 4.11. Конечно, это совсем не то, что мы ожидали получить.

Рис. 4.11. Результат работы программы с ошибкой

В подобных ситуациях программу приходится отлаживать. Один из способов отладки описан ниже.

  • Нажмите кнопку Break в диалоговом окне, показанном на рис. 9.11.

  • Закройте окно (в данном примере — консольное), чтобы вернуться в IDE.

    Установите точку прерывания (F9) в позиции, с которой должен начаться анализ состояния различных объектов программы, — в нашем примере логично установить ее в строке, предшествующей той, в которой произошло исключение (строка 9 листинга). Запустите программу командой Debug > Start (клавиша F5). Откройте окно локальных переменных и выведите его на передний план. На рис. 4.12 показано, как выглядит это окно. Рядом с именами объектных переменных aLink и aLinkedList расположены значки «+», на которых так и хочется щелкнуть.

    Рис. 4.12. Окно локальных переменных в начале сеанса отладки .

    Поскольку объектная переменная aLink соответствует третьей ссылке, очевидно, ссылка на предыдущий элемент не должна быть равна Nothi ng. Это наводит на мысль, что мы должны повнимательнее присмотреться к коду, в котором присваивается значение ссылки на предыдущий элемент.



    Содержание  Назад  Вперед