1
resposta

Constructor com o private em c#

Tenho uma classe Gerente que deve organizar o sistema, ele e o responsável por criar o perfil dos clientes. Entao, tambem existe a classe Cliente. Minha duvida e se tem como a classe Cliente ser instanciada somente quando eu chamar o método CriarCliente() que esta presente na classe Gerente.

1 resposta

Olá Kaiky.

Tudo bem?

Sim, é possível fazer isso em C#. Você pode usar um construtor privado na classe Cliente para garantir que ela só possa ser instanciada a partir do método CriarCliente() na classe Gerente. Aqui está um exemplo de como você pode fazer isso:

public class Cliente
{
    public string Nome { get; private set; }
    public int Idade { get; private set; }

    // Construtor privado
    private Cliente(string nome, int idade)
    {
        Nome = nome;
        Idade = idade;
    }

    // Método estático para criar instâncias de Cliente
    public static Cliente CriarCliente(string nome, int idade)
    {
        return new Cliente(nome, idade);
    }
}

public class Gerente
{
    public Cliente CriarCliente(string nome, int idade)
    {
        return Cliente.CriarCliente(nome, idade);
    }
}

Neste exemplo, a classe Cliente tem um construtor privado, o que significa que ela não pode ser instanciada diretamente de fora da classe. Em vez disso, você usa o método CriarCliente na classe Gerente para criar instâncias de Cliente.

Dessa forma, você garante que a criação de objetos Cliente seja controlada pela classe Gerente.

Seria isso? Entendi certo? Qualquer coisa manda aqui de novo.

Espero ter ajudado e bons estudos!