2
respostas

[Dúvida] Erro nos exercícios

Olá boa noite! Estou com uma dificuldade em resolver um erro que estou ganhando no código do exercício 2 do curso 3 (C# Dominando a orientação a objetos) e aula 1 (Organizando o projeto): Na classe principal program.cs está ocorrendo o erro CS1503 (veja imagem abaixo). Pesquisei o que é esse erro, até entendi do que se trata mas não consegui resolver no meu código. Seguem os códigos. Muito obrigado pela ajuda e atenção.

using Alura.filmes;

Filme filme = new Filme("Um sonho de liberdade", 142, new List<string>() { "Tim Robbins", "Morgan Freeman" });
Filme filme2 = new Filme("O poderoso chefão", 175, new List<string>() { "Marlon Brando", "Al Pacino", "Talia Shire" });
Filme filme3 = new Filme("Batman - O Cavaleiro das Trevas", 152, new List<string>() { "Christian Bale", "Heath Ledger", "Maggie Gyleenhaal" });
Filme filme4 = new Filme("Senhor dos Anéis - O Retorno do Rei", 201, new List<string>() { "Elijah Wood", "Ian McKellen", "Viggo Mortensen" });
Filme filme5 = new Filme("Green Book - O Guia", 130, new List<String>() { "Viggo Mortensen", "Mahershala Ali" });

List<Filme> meusFilmesFavoritos = new List<Filme>();
meusFilmesFavoritos.Add(filme);
meusFilmesFavoritos.Add(filme2);
meusFilmesFavoritos.Add(filme3);
meusFilmesFavoritos.Add(filme4);
meusFilmesFavoritos.Add(filme5);

foreach (Filme f in meusFilmesFavoritos) {
    Console.WriteLine($"Filme: {f.Titulo}");
    Console.WriteLine($"Duracao: {f.Duracao}");
    f.ListarElenco();
    Console.WriteLine();
}
namespace Alura.filmes {

    class Filme {

        public List<Artista> Elenco { get; set; }
        public string Titulo { get; set; }
        public int Duracao { get; set; }
       


        public Filme(string titulo, int duracao, List<Artista> elenco) {
            if (elenco == null) {
                Elenco = new List<Artista>();
            }
            else {
                Elenco = elenco;
                foreach (var artista in Elenco) {
                    artista.AdicionarFilme(this);
                }
            }

            Titulo = titulo;
            Duracao = duracao;
        }

        public void AdicionarElenco(Artista artista) {
            Elenco.Add(artista);
            if (!artista.FilmesAtuados.Contains(this)) {
                artista.AdicionarFilme(this);
            }
            Console.WriteLine($"{artista} adicionado/a ao elenco.");
        }

        public void ListarElenco() {
            if (Elenco.Count == 0) {
                Console.WriteLine("Elenco vazio.");
            }
            else {
                Console.WriteLine("Elenco... ");
                foreach (var artista in Elenco) {
                    Console.WriteLine(artista.Nome);
                }
            }
        }
    }
}
using Alura.filmes;

class Artista {
    public string Nome { get; set; }
    public int Idade { get; set; }
    public List<Filme> FilmesAtuados { get; set; }
    public int QuantidadeDeFilmes => FilmesAtuados.Count;


    public Artista(string nome, int idade) {
        Nome = nome;
        Idade = idade;
        FilmesAtuados = new List<Filme>();
    }

    public void AdicionarFilme(Filme filme) {
        FilmesAtuados.Add(filme);
        if (!filme.Elenco.Contains(this)) filme.AdicionarElenco(this);
    }


    public void MostrarFilmesAtuados() {

        if (this.FilmesAtuados.Count == 0) {
            Console.WriteLine($"Nenhum filme encontrado na base para {this.Nome}");
            return;
        }

        Console.WriteLine($"Filmes de {this.Nome}...");
        foreach (var filme in FilmesAtuados) {
            Console.WriteLine($"Filme: {filme.Titulo}");
        }
    }
}
2 respostas

Oi, Jorge.

Quero muito te ajudar com sua dúvida, mas para isso, preciso de mais detalhes sobre o que está acontecendo. Assim consigo entender melhor o contexto e sugerir um caminho mais certeiro.

Para facilitar esse processo, recomendo dar uma olhadinha no nosso guia de como fazer uma boa pergunta no fórum. Ele traz algumas dicas rápidas que ajudam bastante na hora de explicar o problema, como compartilhar o código completo no GitHub e mandar aqui e o erro exato que está recebendo, se puder copiar e colar aqui vai ajudar também.

Quando puder, me manda mais informações? Fico no aguardo para seguir com você nessa.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi Lorena boa noite! Obrigado pelo retorno! Sim eu li o guia de como fazer uma boa pergunta. Sobre a questão do Git, no momento estou impossibilitado de fazer isso, pois o notebook em que eu estudo é o mesmo em que eu trabalho e o note é da empresa e preciso negociar com ela o download do Git. Quando criei esse tópico aqui no Fórum eu anexei a imagem do erro mas não sei porque parece que não está ficando visível aí prá você né? Eu também acabei esquecendo de anexar o código de uma classe: Artista. Fiz a edição deste tópico e coloquei o código da 3a. classe: Artista. As classes são : Program.cs, Filme.cs e Artista.cs. Queria ver com você se você teria como criar um projeto novo no Visual Studio (teste.sln, por exemplo) aí na sua máquina e colar esses 3 códigos das 3 classes e você já irá ver o erro que está ocorrendo no Program.cs. Muito obrigado Lorena e desculpe o incomodo!