Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Pequeno problema baixando o código e erro na escrita de uma função

No texto descritivo do vídeo dessa aula, a função void está escrita com pequenos erros que tornam o código não funcional:

void RegistrarBanda()
{
   Console.Clear();
     Console.WriteLine("Registro de bandas");
     Console.Write("Digite o nome da banda que deseja registrar: ")
     string nomeDaBanda = Console.ReadLine()!;
     Console.WriteLine($"A banda {nomeDaBanda} foi registrada com sucesso!");
     Console.Clear();
     Thread.Sleep(2000);
     ExibirOpcoesDoMenu();
}

O primeiro erro é simples, falta um ; no fim do Console.Write de "Dighite o nome da banda..." O outro erro não é um bug, mas cria um erro de execução. A ordem de Console.Clear e Thread Sleep deveriam ser ao contrário (Como feito pelos professores no vídeo) Se Clear estiver a frente de Sleep, a tela é limpa antes mesmo de você conseguir ler a frase "A banda XXX foi registrada com sucesso!" e cria uma tela preta por 2 segundos.

Só passando porque as vezes eu mesmo estudo usando apenas o texto sem o vídeo por necessidade do silêncio, então pode criar erros.

Além disso, quero matar uma duvida:

Instalei meu Visual Studio e ele está com .Net 8.0 acredito eu, tive que baixar o código todo da aula pelo zip hoje e ele simplesmente não funciona, dizendo que o .Net7.0 não esta funcionando ou algo assim, tentei instalar e mesmo assim não deu.. Resolvi reescrevendo ocódigo todo num projeto novo.

1 resposta
solução!

Oi Vinicius!

Entendo que você encontrou alguns problemas ao seguir o texto descritivo da aula. Vamos abordar um por um para ajudar a resolver:

  1. Erro de Sintaxe no Código: Você já identificou corretamente que falta um ponto e vírgula (;) após o Console.Write("Digite o nome da banda que deseja registrar: "). Isso é essencial para que o código compile corretamente.

  2. Ordem do Console.Clear() e Thread.Sleep(): Você também está certo sobre a ordem desses comandos. Para garantir que a mensagem "A banda XXX foi registrada com sucesso!" seja visível antes de limpar a tela, você deve colocar o Thread.Sleep(2000); antes do Console.Clear();. Assim, o programa espera 2 segundos antes de limpar a tela, permitindo que o usuário veja a mensagem.

Aqui está como o código deve ficar:

void RegistrarBanda()
{
    Console.Clear();
    Console.WriteLine("Registro de bandas");
    Console.Write("Digite o nome da banda que deseja registrar: ");
    string nomeDaBanda = Console.ReadLine()!;
    Console.WriteLine($"A banda {nomeDaBanda} foi registrada com sucesso!");
    Thread.Sleep(2000);
    Console.Clear();
    ExibirOpcoesDoMenu();
}
  1. Problema com .NET Version: Quanto ao problema de compatibilidade de versões do .NET, isso pode ocorrer porque o projeto original foi criado com uma versão diferente do .NET. Uma solução prática é criar um novo projeto no Visual Studio com a versão do .NET que você tem instalada (no seu caso, .NET 8.0) e copiar o código manualmente para este novo projeto. Isso parece ter funcionado para você, o que é ótimo! Outra opção é instalar a versão .net7 em seu computador, você pode buscar as versão em: https://dotnet.microsoft.com/pt-br/download/dotnet/7.0

Espero ter ajudado e bons estudos!