Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os 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 fazer debug, pode ser necessário examinar o código em muitos ficheiros 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 acompanhar esse código em sua cabeça, ou desenhar um diagrama separado. Assim, quando seu trabalho é interrompido, os mapas de código ajudam a atualizar sua memória sobre o código em que 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 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 Comunidade e Professional do Visual Studio, você pode abrir diagramas que foram gerados na edição Enterprise, mas não pode editá-los.
Entenda o problema
Suponha que há 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é desenhar a próxima linha.
Então você começa a investigar procurando o método Undo. Encontra-o na classe PaintCanvas.
Comece a mapear o código
Agora comece a mapear o undo método e seus relacionamentos. No editor de códigos, você adiciona o undo método e os campos aos quais 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.
Sugestão
O realce verde mostra os últimos itens que foram adicionados ao mapa. A seta verde mostra a posição do cursor no código. As setas entre itens representam relações diferentes. Você pode obter mais informações sobre os itens no mapa movendo o mouse sobre eles e examinando suas dicas de ferramentas.
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 move-se entre itens no mapa. O cursor no editor de códigos também se move automaticamente.
Sugestão
Você também pode mover a seta verde no mapa movendo o cursor no editor de códigos.
Compreender as relações entre partes de código
Agora você quer saber qual outro código interage com os history campos e paintObjects . Você pode adicionar todos os métodos que fazem referência a esses campos ao mapa. Você pode fazer isso a partir do mapa ou do 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 que você executa com um item no mapa aplicam-se somente aos itens que compartilham o mesmo contexto.
Altere o layout para reorganizar o fluxo de relações e tornar o mapa mais fácil de ler. Você também pode mover itens pelo mapa arrastando-os.
Sugestão
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 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ê aprende 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, chama o Repaint método.
Agora examine a definição do addPaintObject método. Ele também executa algumas tarefas com history e paintObjects. Também chama Repaint.
Encontre 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, embora undo modifique os mesmos campos. Então tu achas que podes resolver este problema ligando para Repaint a partir de undo.
Se você não tinha um mapa para mostrar essa chamada ausente, talvez tenha sido mais difícil encontrar esse problema, especialmente com códigos mais complexos.
Partilhe a sua descoberta e os próximos passos
Antes de você ou outra pessoa corrigir esse bug, você pode fazer anotações no mapa sobre o problema e como corrigi-lo.
Por exemplo, você pode adicionar comentários ao mapa e sinalizar itens usando cores.
Se você tiver o Microsoft Outlook instalado, você pode enviar o mapa por e-mail para outras pessoas. Você também pode exportar o mapa como uma imagem ou outro formato.
Corrija o problema e mostre o que você fez
Para corrigir esse bug, adicione a chamada de Repaint para undo.
Para confirmar a correção, reinicias a sessão de depuração e tentas reproduzir o bug. Agora, ao escolheres Desfazer o meu último traço, funciona como esperas e confirma que fizeste a correção apropriada.
Você pode atualizar o mapa para mostrar a correção que você fez.
O seu mapa agora mostra um link entre desfazer e repintar.
Observação
Ao atualizar o mapa, você pode ver uma mensagem informando que o índice de código usado para criar o 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. Você também tem um mapa que ajuda você a navegar pelo código, lembrar o que você aprendeu e mostra as etapas que você tomou para corrigir o problema.