Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

o meu nao aparece para registrar.

// Screen Sound     
string mensagemDeBoasVindas = "Boas vindas ao Screen Sound";

void ExibirMensagemDeBoasVindas()
{
    Console.WriteLine(@"


░██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗  ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║  ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║  ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║  ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║  ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝  ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░");
    Console.WriteLine(mensagemDeBoasVindas);
    
}

void ExibirOpcoesDoMenu()
{
    Console.WriteLine("Digite 1 para registrar uma banda");
    Console.WriteLine("Digite 2 para mostrar todas as bandas");
    Console.WriteLine("Digite 3 para avaliar uma banda");
    Console.WriteLine("Digite 4 para exibir a média de uma banda");
    Console.WriteLine("Digite -1 para sair");

    Console.Write("\nDigite a sua opção: ");
    string opcaoEscolhida = Console.ReadLine();
    int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);
   switch (opcaoEscolhidaNumerica)
    {
        case 1: Console.WriteLine("Você escolheu a opção " + opcaoEscolhida); break;
        case 2: Console.WriteLine("Você escolheu a opção " + opcaoEscolhida); break;
        case 3: Console.WriteLine("Você escolheu a opção " + opcaoEscolhida); break;
        case 4: Console.WriteLine("Você escolheu a opção " + opcaoEscolhida); break;
        case -1: Console.WriteLine("tchau tchau!"); break;
        default: Console.WriteLine("Opção invalida");break;
    }
}
void RegistrarBanda()
{
    Console.Clear();
    Console.WriteLine("Registros 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();
}


ExibirMensagemDeBoasVindas();
ExibirOpcoesDoMenu();

no meu codigo diz que RegistrarBanda() nao esta sendo usado nunca.

1 resposta

Olá Thiago.
O principal problema é que a função RegistrarBanda() foi criada, mas nunca é chamada em nenhum lugar do programa.
Quando o usuário escolhe a opção 1 no menu, o código apenas exibe a mensagem "Você escolheu a opção 1" e encerra o case.
Portanto, a rotina de cadastro da banda nunca é executada.
Para corrigir isso, o case 1 do switch deve chamar a função RegistrarBanda() em vez de apenas escrever uma mensagem na tela.
Além disso, existe um segundo ponto de atenção: dentro da própria função RegistrarBanda() você chama ExibirOpcoesDoMenu() novamente.
Isso faz com que uma função chame a outra repetidamente, criando várias chamadas empilhadas na memória.
Em programas pequenos isso pode não ser percebido, mas a prática recomendada é controlar o menu com um laço (while) e não com chamadas sucessivas de funções.
Outro possível problema está na leitura da opção do usuário.
Você utiliza int.Parse(), que funciona apenas se o usuário digitar um número válido.
Caso ele digite letras ou qualquer outro texto, o programa encerrará com uma exceção.
O mais seguro é utilizar int.TryParse(), que permite validar a entrada antes de convertê-la.
Também há um detalhe relacionado à nulidade. O método Console.ReadLine() pode retornar null, e dependendo das configurações do projeto o compilador pode emitir avisos. Não é um erro de execução imediato, mas vale a pena tratar esse caso adequadamente.
Analise o seu código, faça as correções e me avise qualquer duvida.
Bons estudos.