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



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


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

Отладка объектно-ориентированных программ всегда начинается с анализа объектных переменных и проверки того, соответствует ли их состояние предполагаемому. Именно по этой причине в VS IDE предусмотрены средства для получения информации о закрытых полях ваших классов — окна просмотра (Watch) и локальных переменных (Locals). Применение этих средств отладки будет рассмотрено на простом примере. Допустим, мы решили перейти от связанного списка к двусвязному. Проще говоря, в каждом элементе должна храниться не одна ссылка, а две — на следующий и на предыдущий элемент списка, чтобы перебор мог осуществляться не только в прямом, но и в обратном направлении. Ниже приведен первый вариант класса двусвязного списка, содержащий ошибку. На этом примере будут продемонстрированы основные приемы отладки объектно-ориентированных программ:

1 Option Strict On

2 Module Modulel

3 Sub Main()

4 Dim alinkList As New LinkedList("first link")

5 Dim aLink As LinkedList.Link

6 aLink = aLinklist.MakeLink(aLinkList.GetFirstLink, "second link")

7 aLink = aLinkList.MakeLinktaLink, "third link")

8 Console.WriteLine(aLinkList.GetFirstLink.MyData)

9 aLink = aLinkList.GetNextLink(aLinkList.GetFirstLink)

10 Console.Wri teLine(aLi nk.MyData)

11 Console.WriteLineCaLink.NextLink.MyData)

12 Console. ReadUne()

13 End Sub

14 Public Class LinkedList

15 Private m_CurrentLink As Link

16 Private nfFirstUnk As Link

17 Sub New(ByVal theData As String)

18 m_CurrentLink = New Link(theData)

19 m_FirstLink = m CurrentLink

20 End Sub

21 Public Function MakeLinktByVal currentLink As Link. ByVal _

22 theData As String) As Link

23 m_CurrentLink = New LinkCcurrentLink.theData)

24 Return m_CurrentLink

25 End Function

26 Public Readonly Property GetNextLink(ByVal aLink As Link)_

27 As Link

28 Get

29 Return aLink.NextLink()

30 End Get

31 End Property

32 Public Readonly Property GetCurrentLink() As Link



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