Como gerar números aleatórios com C#
Gerando números aleatórios com C#
Classe Random
A classe random, pertencente ao namespace System, nos permite gerar números aleatórios em C# por meio de seus métodos, incluindo números inteiros e de ponto flutuante. Números aleatórios são empregados em diversas aplicações, tais como criptografia, simulações estatísticas e jogos de computador.
Como usar a classe random
Primeiramente, instanciamos a classe:
Random numAleatorio = new Random();
E então invocamos um de seus métodos geradores de números aleatórios, atribuindo o retorno do método a uma variável de tipo compatível.
Gerando número aleatório inteiro
Para gerar um número aleatório inteiro, usamos o método Next(), que permite gerar um valor inteiro (int) positivo entre zero e Int32.MaxValue (2.147.483.647).
int valorInteiro = numAleatorio.Next();
Podemos também configurar o intervalo de números gerados adicionando dois argumentos ao método Next(): número inicial e número final + 1. Por exemplo, para gerar apenas números aleatórios entre 1 e 20, escrevemos:
int valorInteiro = numAleatorio.Next(1,21);
Gerando número aleatório de ponto flutuante:
E para gerar um número de ponto flutuante, usamos o método NextDouble():
double valorDecimal = numAleatorio.NextDouble();
Note que o método NextDouble() gera um número do tipo double, e não um float.
Visualizando os valores gerados
Para ver os valores aleatórios gerados, basta exibir o conteúdo das variáveis utilizadas em umca caixa de texto, label ou outro componente compatível. O código a seguir, associado a um botão em um formulário, permite gerar e exibir os valores (inteiro e decimal) em dois labels:
private void btnGeraNumero_Click(object sender, EventArgs e) { Random numAleatorio = new Random(); int valorInteiro = numAleatorio.Next(10,21); double valorQuebrado = numAleatorio.NextDouble(); lblNumeroIntGerado.Text = valorInteiro.ToString(); lblNumDoubleGerado.Text = valorQuebrado.ToString(); }
Ao executar o programa e clicar no botão, teremos uma saída como a seguinte:
Ótimo conteúdo.
Obrigado Wanderson!