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)