Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

[Projeto] Faça como eu fiz: cadastro de funcionários

Segue código:

Classe Program:

Interno f1 = new("Luciana", "Desenvolvedora", 7000.00m);
Freelancer f2 = new("Carlos", "Designer", 3500.00m);

f1.Apresentar();
f2.Apresentar();

Interface IFuncionario:

    internal interface IFuncionario
    {
        void Apresentar();
    }

Aqui achei interessante criar uma interface para que todos os funcionários implementem a mesma, assim tanto o Freelancer quanto o Interno terão o mesmo método de Apresentar().

Classei Funcionario:

    internal class Funcionario(string nome, string cargo)
    {
        public string Nome { get; } = nome;
        public string Cargo { get; } = cargo;
    }

Também utilizei o construtor primário que vieram junto ao C# 12.

Classe Freelancer:

    internal class Freelancer(string nome, string cargo, decimal valorProjeto) : Funcionario(nome, cargo), IFuncionario
    {
        public decimal ValorProjeto { get; } = valorProjeto;

        public void Apresentar()
        {
            Console.WriteLine($"Freelancer {Nome} – Cargo: {Cargo} – Projeto atual: R$ {ValorProjeto:N2}");
        }
    }

Classe Interno:

    internal class Interno(string nome, string cargo, decimal salario) : Funcionario(nome, cargo), IFuncionario
    {
        public decimal Salario { get; } = salario;

        public void Apresentar()
        {
            Console.WriteLine($"Funcionária {Nome} – Cargo: {Cargo} – Salário: R$ {Salario:N2}");
        }
    }