3
respostas

[Bug] Erro de Compilação

Olá!

Estou fazendo o curso de C#, criando a primeira aplicação. Escrevi junto ao professor Gui Lima o código do Screen Sound da aula 2 e quando tento rodar o código está dando erro de compilação.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Como faço pra resolver isso? Estou tentando já tem um tempo mas não obtive sucesso.

3 respostas

Bom dia, Breno! Tudo bem?

Estou aqui para te ajudar, mas, não foi possível compreender totalmente o seu cenário. Para que eu possa te orientar melhor, me responda o seguinte: há outra mensagem de erro além dessa que você mostrou no print? Consegue me mandar todo o seu código para eu analisar?

Ah, se quiser, dá uma olhadinha neste guia sobre como fazer uma boa pergunta no fórum — ele mostra exatamente o que precisamos saber pra conseguir te ajudar da melhor forma, e com mais agilidade.

Fico no aguardo!

Boa noite, tudo bem e com você?

Desculpa ter falhado na comunicação, é minha primeira vez no fórum. Só apareceu essa mensagem, vou colar o código aqui.

//Screen Sound
string mensagemDeBoasVindas = "Boas vindas ao Screen Sound";
List listaDasBandas = new List { "U2", "The Beatles", "Calypso" };

static void ExibirLogo(string mensagemDeBoasVindas)
{
Console.WriteLine(@"

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

void ExibirOpcoesDoMenu()
{
ExibirLogo(mensagemDeBoasVindas);
Console.WriteLine("\nDigite 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 " + opcaoEscolhidaNumerica);
        break;
    case 2:
        Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
        break;
    case 3:
        Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
        break;
    case 4:
        Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
        break;
    case -1:
        Console.WriteLine("Tchau tchau :)");
        break;
    default:
        Console.WriteLine("Opção inválida");
        break;
}
ExibirOpcoesDoMenu();

}

Oi, Breno!

O erro de compilação está na criação da lista e também na chamada recursiva do menu. Resolva fazendo assim:

  1. Corrija a lista (faltou o tipo genérico e o new está incompleto):

    
     string mensagemDeBoasVindas = "Boas vindas ao Screen Sound";
     List listaDasBandas = new List { "U2", "The Beatles", "Calypso" };
     
  2. Não chame o menu dentro dele mesmo (isso causa repetição infinita e pode travar). Em vez de ExibirOpcoesDoMenu(); no final do método, controle o fluxo com um loop até o usuário digitar -1:

    
     string mensagemDeBoasVindas = "Boas vindas ao Screen Sound";
     List listaDasBandas = new List { "U2", "The Beatles", "Calypso" };
    
     static void ExibirLogo(string mensagemDeBoasVindas)
     {
         Console.WriteLine(@"
     ░██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗  ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░
     ██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║  ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗
     ╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║  ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║
     ░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║  ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║
     ██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║  ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝
     ╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝  ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░
     ");
         Console.WriteLine(mensagemDeBoasVindas);
     }
    
     void ExibirOpcoesDoMenu()
     {
         int opcaoEscolhidaNumerica = 0;
    
         while (opcaoEscolhidaNumerica != -1)
         {
             ExibirLogo(mensagemDeBoasVindas);
    
             Console.WriteLine("\nDigite 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()!;
             opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);
    
             switch (opcaoEscolhidaNumerica)
             {
                 case 1:
                     Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
                     break;
                 case 2:
                     Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
                     break;
                 case 3:
                     Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
                     break;
                 case 4:
                     Console.WriteLine("Você escolheu a opção " + opcaoEscolhidaNumerica);
                     break;
                 case -1:
                     Console.WriteLine("Tchau tchau :)");
                     break;
                 default:
                     Console.WriteLine("Opção inválida");
                     break;
             }
         }
     }
    
     ExibirOpcoesDoMenu();
     

Se você aplicar esses dois ajustes (List e loop no menu), o projeto compila e o menu funciona sem entrar em repetição infinita.

Fico à disposição!