4
respostas

dúvida C#

Boa tarde, me surgiu uma duvida, se eu quiser limitar a quantidade de objetos a serem criados, como devo fazer? por exemplo, tenho uma classe chamada aluno, mas só posso ter 5 alunos, n podendo criar mais, como eu faria isso?

4 respostas

Opa, Gabriel. Tudo bom?

A solução mais simples para isto é manter um contador compartilhado por todos os objetos do tipo Aluno (ou seja, um membro estático) e o verificar no construtor para lançar a exceção. Por exemplo:

public class Aluno
{
    private static int _instanciasCriadas;

    public Aluno()
    {
        if (_instanciasCriadas >= 5)
        {
            throw new Exception("Somente 5 instanciações de Aluno são permitidas.");
        }

        _instanciasCriadas++;
    }
}

Esta é uma dúvida pontual ou um requisito? Você poderia dar mais contexto? Dependendo da situação específica, é possível que exista uma solução melhor.

O que você acha?

Abs.

public class Class1
    {
        public static int contas { get; private set; }
        public int numero;
        public string palavra;
        public float altura;


        void Construtor()
        {
            if (contas == 2)
            {
               throw new Exception("Limites de contas criadas");

            }
            else
            {
                int Numero;
                Console.WriteLine("numero");
                Numero = int.Parse(Console.ReadLine());
                numero = Numero;

                string Palavra;
                Console.WriteLine("Palavra");
                Palavra = (Console.ReadLine());
                palavra = Palavra;

                float Altura;
                Console.WriteLine("Altura");
                Altura = float.Parse(Console.ReadLine());
                altura = Altura;

                contas++;
                Console.WriteLine(contas);
            }
        }

        public Class1 ()
        {
            Construtor();
        }
    }

 static void Main(string[] args)
        {
            Class1 gabi = new Class1();
            Class1 gabi2 = new Class1();
            Class1 gabi3 = new Class1();
            Class1 gabiasd = new Class1();

            gabiasd.altura = 12; 
            gabi3.altura = 12;  


            Console.ReadLine();
        }

fiz como você mencionou mas ele ainda cria os objetos depois do segundo, gostaria de saber como posso fazer para n criar mais objetos após o numero máximo de alunos

ele lança a mensagem de exceção, mas ainda cria o objeto.

Opa, testei aqui na minha máquina. Como não há tratamento de exceção na criação da instância, o objeto não é criado e a aplicação é imediatamente finalizada.

O que você quer que a aplicação faça?