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?
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?
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?