Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Mapy kodu w programie Visual Studio mogą pomóc uniknąć utraty dużych baz kodu, nieznanego kodu lub starszego kodu. Na przykład podczas debugowania może być konieczne przyjrzenie się kodowi w wielu plikach i projektach. Użyj map kodu, aby poruszać się po fragmentach kodu i zrozumieć relacje między nimi. W ten sposób nie musisz śledzić tego kodu w głowie ani rysować oddzielnego diagramu. Dlatego po przerwaniu pracy mapy kodu pomagają odświeżyć pamięć o kodzie, nad którym pracujesz.
Zielona strzałka pokazuje, gdzie kursor pojawia się w edytorze
Aby uzyskać szczegółowe informacje na temat poleceń i akcji, których można używać podczas pracy z mapami kodu, zobacz Przeglądanie i zmienianie kolejności map kodu.
Dowiedz się więcej o debugowaniu w programie Visual Studio za pomocą narzędzia debugera.
Uwaga / Notatka
Aby tworzyć i edytować mapy kodu, potrzebujesz wersji Visual Studio Enterprise. W wersjach Visual Studio Community i Professional można otwierać diagramy wygenerowane w wersji Enterprise, ale nie można ich edytować.
Omówienie problemu
Załóżmy, że w programie rysunkowym występuje usterka, nad którą pracujesz. Aby odtworzyć usterkę, otwórz rozwiązanie w programie Visual Studio i naciśnij F5 , aby rozpocząć debugowanie.
Gdy narysujesz linię i wybierzesz Cofnij ostatnie pociągnięcie, nic się nie dzieje, dopóki nie narysujesz następnej linii.
Dlatego zacznij badać, wyszukując metodę Undo . Znajdziesz go w PaintCanvas klasie .
Rozpoczynanie mapowania kodu
Teraz rozpocznij mapowanie undo metody i jej relacji. W edytorze kodu należy dodać metodę undo i pola, do których się odnosi, do nowej mapy kodu. Podczas tworzenia nowej mapy indeksowanie kodu może zająć trochę czasu. Dzięki temu późniejsze operacje będą działać szybciej.
Wskazówka
Zielone wyróżnienie pokazuje ostatnie elementy, które zostały dodane do mapy. Zielona strzałka pokazuje położenie kursora w kodzie. Strzałki między elementami reprezentują różne relacje. Więcej informacji o elementach na mapie można uzyskać, przenosząc mysz nad nimi i sprawdzając etykietki narzędzi.
Nawigowanie i badanie kodu z mapy
Aby wyświetlić definicję kodu dla każdego pola, kliknij dwukrotnie pole na mapie lub wybierz pole i naciśnij F12. Zielona strzałka przechodzi między elementami na mapie. Kursor w edytorze kodu również przenosi się automatycznie.
Wskazówka
Możesz również przenieść zieloną strzałkę na mapie, przenosząc kursor w edytorze kodu.
Omówienie relacji między fragmentami kodu
Teraz chcesz wiedzieć, który inny kod wchodzi w interakcję z polami history i paintObjects . Do mapy można dodać wszystkie metody odwołujące się do tych pól. Możesz to zrobić na mapie lub w edytorze kodu.
Uwaga / Notatka
Jeśli dodasz elementy z projektu, który jest współużytkowany w wielu aplikacjach, takich jak Windows Phone lub Windows Store, te elementy są zawsze wyświetlane z aktualnie aktywnym projektem aplikacji na mapie. Jeśli więc zmienisz kontekst na inny projekt aplikacji, kontekst na mapie również zmieni się dla wszystkich nowo dodanych elementów z udostępnionego projektu. Operacje wykonywane z elementem na mapie dotyczą tylko tych elementów, które współużytkują ten sam kontekst.
Zmień układ, aby zmienić rozmieszczenie przepływu relacji i ułatwić odczytywanie mapy. Możesz również przenosić elementy wokół mapy, przeciągając je.
Wskazówka
Domyślnie układ przyrostowy jest włączony. Zmiana układu mapy jest minimalna podczas dodawania nowych elementów. Aby zmienić kolejność całej mapy za każdym razem, gdy dodasz nowe elementy, wyłącz opcję Układ przyrostowy.
Przeanalizujmy te metody. Na mapie kliknij dwukrotnie metodę PaintCanvas lub wybierz tę metodę i naciśnij F12. Dowiesz się, że ta metoda tworzy history i paintObjects jako puste listy.
Teraz powtórz te same kroki, aby zbadać definicję clear metody. Dowiesz się, że clear wykonuje kilka zadań za pomocą poleceń paintObjects i history. Następnie wywołuje metodę Repaint .
Teraz sprawdź definicję addPaintObject metody. Wykonuje również niektóre zadania za pomocą poleceń history i paintObjects. Wywołuje również metodę Repaint.
Znajdź problem, sprawdzając mapę
Wygląda na to, że wszystkie metody modyfikujące history i paintObjects wywołują Repaint. Jednak metoda undo nie wywołuje Repaint, mimo że undo modyfikuje te same pola. Dlatego uważasz, że możesz rozwiązać ten problem, dzwoniąc pod Repaint z undo.
Gdybyś nie miał mapy pokazującej brakujące wywołanie, być może byłoby trudniej znaleźć ten problem, zwłaszcza w przypadku bardziej złożonego kodu.
Podziel się swoim odkryciem i kolejnymi krokami
Zanim ty lub ktoś inny naprawi tę usterkę, możesz zanotować na mapie problem i jak go rozwiązać.
Można na przykład dodawać komentarze do mapy i flagować elementy przy użyciu kolorów.
Jeśli masz zainstalowany program Microsoft Outlook, możesz wysłać mapę w wiadomości e-mail do innych osób. Możesz również wyeksportować mapę jako obraz lub inny format.
Rozwiązać problem i pokazać, co zrobiłeś
Aby naprawić tę usterkę, należy dodać wywołanie Repaint do undo.
Aby potwierdzić poprawkę, uruchom ponownie sesję debugowania i spróbuj odtworzyć usterkę. Teraz wybranie opcji Cofnij ostatnie pociągnięcie działa zgodnie z oczekiwaniami i potwierdza, że wprowadzono prawidłową korektę.
Możesz zaktualizować mapę, aby pokazać wprowadzone poprawki.
Mapa teraz pokazuje łącze między cofnij a przemaluj.
Uwaga / Notatka
Po zaktualizowaniu mapy może zostać wyświetlony komunikat informujący, że indeks kodu użyty do utworzenia mapy został zaktualizowany. Oznacza to, że ktoś zmienił kod, co powoduje, że mapa nie jest zgodna z bieżącym kodem. Nie uniemożliwia to aktualizowania mapy, ale może być konieczne ponowne utworzenie mapy w celu potwierdzenia, że jest ona zgodna z kodem.
Teraz skończysz z badaniem. Pomyślnie znalazłeś i naprawiłeś problem przez mapowanie kodu. Masz również mapę, która ułatwia poruszanie się po kodzie, zapamiętanie poznanych informacji i pokazanie kroków, które wykonaliśmy w celu rozwiązania problemu.