Resolução:
ICurso.cs
namespace PraticandoC_05.PlataformaDeCursos10
{
internal interface ICurso
{
void ValidarConteudo();
void PublicarCurso();
}
}
Instrutor.cs
namespace PraticandoC_05.PlataformaDeCursos10
{
internal class Instrutor
{
public Instrutor(string? nome, string? especialidade)
{
Nome = nome;
Especialidade = especialidade;
}
public string? Nome { get; }
public string? Especialidade { get; }
}
}
CursoProgramacao.cs
namespace PraticandoC_05.PlataformaDeCursos10
{
internal class CursoProgramacao : ICurso
{
public CursoProgramacao(string? curso, Instrutor? instrutor)
{
Curso = curso;
Instrutor = instrutor;
}
public string? Curso { get; }
public Instrutor? Instrutor { get; }
public void ValidarConteudo()
{
Console.WriteLine($"Validando conteúdo do curso de programação: {Curso}");
}
public void PublicarCurso()
{
Console.WriteLine($"Curso publicado com sucesso: {Curso} - Instrutora: {Instrutor!.Nome} ({Instrutor.Especialidade})\n");
}
}
}
CursoDesign.cs
namespace PraticandoC_05.PlataformaDeCursos10
{
internal class CursoDesign : ICurso
{
public CursoDesign(string? curso, Instrutor? instrutor)
{
Curso = curso;
Instrutor = instrutor;
}
public string? Curso { get; }
public Instrutor? Instrutor { get; }
public void ValidarConteudo()
{
Console.WriteLine($"Validando conteúdo do curso de design: {Curso}");
}
public void PublicarCurso()
{
Console.WriteLine($"Curso publicado com sucesso: {Curso} - Instrutora: {Instrutor.Nome} ({Instrutor.Especialidade})\n");
}
}
}
Program.cs
using PraticandoC_05.PlataformaDeCursos10;
Instrutor instrutor1 = new Instrutor("Carla", "Back-end");
ICurso curso1 = new CursoProgramacao("C# com POO", instrutor1);
Instrutor instrutor2 = new Instrutor("Felipe", "UI/UX");
ICurso curso2 = new CursoDesign("Design de Interfaces", instrutor2);
curso1.ValidarConteudo();
curso1.PublicarCurso();
curso2.ValidarConteudo();
curso2.PublicarCurso();