Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Mapas de código no Visual Studio podem ajudá-lo a evitar se perder em grandes bases de código, código desconhecido ou código herdado. Por exemplo, ao realizar a depuração, talvez seja necessário examinar o código em vários arquivos e projetos. Use mapas de código para navegar por partes de código e entender as relações entre eles. Dessa forma, você não precisa controlar esse código na cabeça ou desenhar um diagrama separado. Portanto, quando seu trabalho é interrompido, os mapas de código ajudam a atualizar sua memória sobre o código no qual você está trabalhando.
Uma seta verde mostra onde o cursor aparece no editor
Para obter detalhes dos comandos e ações que você pode usar ao trabalhar com mapas de código, consulte Procurar e reorganizar mapas de código.
Saiba mais sobre a depuração no Visual Studio com a ferramenta Depurador.
Observação
Para criar e editar mapas de código, você precisa do Visual Studio Enterprise Edition. Nas edições Do Visual Studio Community e Professional, você pode abrir diagramas que foram gerados na edição Enterprise, mas não é possível editá-los.
Compreender o problema
Suponha que haja um bug em um programa de desenho no qual você está trabalhando. Para reproduzir o bug, abra a solução no Visual Studio e pressione F5 para iniciar a depuração.
Quando você desenha uma linha e escolhe Desfazer meu último traço, nada acontece até você desenhar a próxima linha.
Portanto, você começa a investigar pesquisando o Undo método. Você o encontra na PaintCanvas classe.
Comece a mapear o código
Agora comece a mapear o undo método e suas relações. No editor de código, você adiciona o undo método e os campos que ele faz referência a um novo mapa de código. Quando você cria um novo mapa, pode levar algum tempo para indexar o código. Isso ajuda as operações posteriores a serem executadas mais rapidamente.
Dica
O realce verde mostra os últimos itens que foram adicionados ao mapa. A seta verde mostra a posição do cursor no código. Setas entre itens representam relações diferentes. Você pode obter mais informações sobre itens no mapa movendo o mouse sobre eles e examinando seus tooltips.
Navegar e examinar o código do mapa
Para ver a definição de código para cada campo, clique duas vezes no campo no mapa ou selecione o campo e pressione F12. A seta verde se move entre os itens no mapa. O cursor no editor de código também é movido automaticamente.
Dica
Você também pode mover a seta verde no mapa movendo o cursor no editor de código.
Entender as relações entre partes de código
Agora você deseja saber qual outro código interage com os campos history e paintObjects. Você pode adicionar todos os métodos que fazem referência a esses campos ao mapa. Você pode fazer isso no mapa ou no editor de código.
Observação
Se você adicionar itens de um projeto compartilhado em vários aplicativos, como Windows Phone ou Windows Store, esses itens sempre aparecerão com o projeto de aplicativo atualmente ativo no mapa. Portanto, se você alterar o contexto para outro projeto de aplicativo, o contexto no mapa também será alterado para quaisquer itens recém-adicionados do projeto compartilhado. As operações executadas com um item no mapa se aplicam somente aos itens que compartilham o mesmo contexto.
Altere o layout para reorganizar o fluxo de relações e facilitar a leitura do mapa. Você também pode mover itens ao redor do mapa arrastando-os.
Dica
Por padrão, o Layout Incremental está ativado. Isso reorganiza o mapa o mínimo possível quando você adiciona novos itens. Para reorganizar todo o mapa sempre que você adicionar novos itens, desative o Layout Incremental.
Vamos examinar esses métodos. No mapa, clique duas vezes no método PaintCanvas ou selecione esse método e pressione F12. Você aprenderá que esse método cria history e paintObjects como listas vazias.
Agora, repita as mesmas etapas para examinar a definição do clear método. Você aprende que clear executa algumas tarefas com paintObjects e history. Em seguida, ele chama o Repaint método.
Agora examine a definição do addPaintObject método. Ele também executa algumas tarefas com history e paintObjects. Ele também invoca Repaint.
Localize o problema examinando o mapa
Parece que todos os métodos que modificam history e paintObjects chamam Repaint. No entanto, o undo método não chama Repaint, mesmo que undo modifique os mesmos campos. Portanto, você acha que pode corrigir esse problema chamando Repaint de undo.
Se você não tiver um mapa para mostrar essa chamada ausente, talvez tenha sido mais difícil encontrar esse problema, especialmente com um código mais complexo.
Compartilhar sua descoberta e as próximas etapas
Antes que você ou outra pessoa corrija esse bug, você pode fazer anotações no mapa sobre o problema e como corrigi-lo.
Por exemplo, você pode adicionar comentários aos itens de mapa e sinalizador usando cores.
Se você tiver o Microsoft Outlook instalado, poderá enviar o mapa por email para outras pessoas. Você também pode exportar o mapa como uma imagem ou outro formato.
Corrigir o problema e mostrar o que você fez
Para corrigir esse bug, adicione a chamada para Repaint a undo.
Para confirmar a correção, reinicie a sessão de debug e tente reproduzir o bug. Agora, escolher Desfazer meu último traço funciona conforme o esperado e confirma que você fez a correção correta.
Você pode atualizar o mapa para mostrar a correção feita.
Agora, o mapa mostra um vínculo entre desfazer e repintar.
Observação
Ao atualizar o mapa, você poderá ver uma mensagem informando que o índice de código usado para criar seu mapa foi atualizado. Isso significa que alguém alterou o código, o que faz com que seu mapa não corresponda ao código atual. Isso não impede que você atualize o mapa, mas talvez seja necessário recriar o mapa para confirmar se ele corresponde ao código.
Agora você terminou sua investigação. Você encontrou e corrigiu o problema mapeando o código com êxito. Você também tem um mapa que ajuda você a navegar pelo código, lembrar o que aprendeu e mostra as etapas que tomou para corrigir o problema.