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

[Sugestão] Economizando linhas com condições ternárias

Fala galerinha, espero que estejam bem!

Enquanto fazia a aula "Criando um método", vi que em geral, a galera gasta de 3 a 5 linhas, e alguns até mais que isso. Sendo assim, segue uma dica bem bacana pra poupar linhas, e manter o código limpo, legível e organizado, que é a utilização de operadores ternários, na prática, o código do método ShowSong() ficará assim:

public void ShowSong() {
    Console.WriteLine($"{Name} - {Singer}");
    Console.WriteLine($"{Album} ({Year})");
    Console.WriteLine($"{Genre}");
    Console.WriteLine($"Duration: {(Duration / 60)}:{Duration % 60}");
    Console.WriteLine($"{(Available ? "disponível no plano" : "indisponível no plano")}");
}

O Código completo da classe ficará:

class Song{
    public string Name { get; set; }
    public string Singer { get; set; }
    public string Album { get; set; }
    public int Year { get; set; }
    public int Duration { get; set; }
    public string Genre { get; set; }
    public bool Available { get; set; }

    public void ShowSong() {
        Console.WriteLine($"{Name} - {Singer}");
        Console.WriteLine($"{Album} ({Year})");
        Console.WriteLine($"{Genre}");
        Console.WriteLine($"Duration: {(Duration / 60)}:{Duration % 60}");
        Console.WriteLine($"{(Available ? "disponível no plano" : "indisponível no plano")}");
    }
};

Assim, você consegue validar a disponibilidade em 1 única linha, e já retornar a saída corretamente de acordo com o valor contido no booleano.

Se quiserem entender melhor os operadores ternários, escrevi há umas semanas no fórum de C/C++ (https://cursos.alura.com.br/forum/topico-sugestao-corrigindo-pontuacao-acima-de-1000-com-operadores-ternarios-em-1-linha-475836)

1 resposta
solução!

Além disso, para quem tiver dificuldade no cálculo de tempo, a forma do cálculo já está inclusa no código, e é bem simples, sendo:

totalEmSegundos / 60 = minutos (divisão sem resto) totalEmSegundos % 60 = segundos que sobram sem completar 1 minuto (resto da divisão)