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