2
respostas

não consigo usar a variavel do tipo dictionary

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeDeixando todo metodo como void quando executo, mesmo sem erro, aparece uma mensagem de erro mas eu continuo e funciona. Mesmo assim não consigo usar a variavel para adicionar as bandas.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeDeixando todo metodo como static void quando executo funciona normal , mas mesmo assim não consigo usar a variavel para adicionar as bandas.

        //Só consegui fazer reconhecer a variavel listaDasBandas dentro de outro metodo, mesmo estando global a variavel
        

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Meu projeto é console

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

O C# não possui o conceito de variáveis globais, toda a variável está em uma classe. No curso pode parecer que existe por causa de algo chamado de Top Level Statements. O C# precisa sempre de um ponto de entrada para executar o programa, que por padrão é Program.Main(). Então quando você tem o arquivo Program.cs:

Console.WriteLine("Hello, World!");
//Código

Ele é compilado em:

using System;

namespace Application
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            //Código
        }
    }
}

Aonde eu quero chegar: você não está usando o Top Level Statement (seu arquivo Program.cs tem a class Program), então toda a instrução deve estar dentro de um método, apenas declarações (métodos, variáveis, contrutores, etc.) podem estar no corpo da classe.

Então você deve adicionar as bandas à listaDeBandas em algum método. Ou você pode fazer na inicialização do dicionário:

        Dictionary<string, List<int>> listaDeBandas = new Dictionary<string, List<int>>()
        {
            { "Banda1",  new List<int>() },
            { "Banda2",  new List<int>() },
            { "Banda3",  new List<int>() },
        };

Ah, mais uma coisa, quando aparece aquela mensagem de erro e você continua, na verdade você está executando a última versão da build. Ou seja, provavelmente o que está sendo executado não é o que está escrito.

Além disso, o Main tem que ser static void e isso implica que o Main só consegue acessar métodos e variáveis static, para além das locais obviamente.