Quantcast
Channel: Bug incrível no c# VS 2012
Viewing all articles
Browse latest Browse all 3

Bug incrível no c# VS 2012

$
0
0

Fala pessoal;

Estou fazendo um form para geração aletorias de senhas, de acordo com os check box que o usuario selecionar. Tenho 4 checkBox(numeros, letras minisculas, maisculas, caracteres especiais).

Quando eu tiro comento uma linha do código(uma MessageBox.Show()) a geração de senhas simplesmente deixa de ser aleatória! ele gera sempre os mesmos carateres! porem quando eu descomento o comando MessageBox.Show() o programa funciona! que loucura!

vou colocar o código abaixo.

Se alguem quiser eu posso mandar o form com os componentes para voces testarem

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Escola.View
{
    public partial class ControleSenhas : Form
    {

        int numeroPossibilidades = 0;

        public ControleSenhas()
        {
            InitializeComponent();
            labelSenhaGerada.Visible = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int tamanhoSenha = Convert.ToInt32(textBoxTamanho.Text);
            labelSenhaGerada.Text = gerarSenha(tamanhoSenha);
            labelSenhaGerada.Visible = true;
            labelSenhaGerada.Refresh();
        }

        public string gerarSenha(int tamanhoSenha)
        {
            char[] senha = new char[tamanhoSenha];

            Random randomizer = new Random();

            for (int i = 0; i < tamanhoSenha; i++)
            {     
                int[] caracteresAleatorios = verificaSelecoesDoUsuario();
                senha[i] = (char)caracteresAleatorios[randomizer.Next(0, numeroPossibilidades)];
                MessageBox.Show("qualquer porcaria!");// ESTA É A LINHA QUE FAZ O CÓDIGO FUNCIONAR!
            }

            // O array de char agora é transformado em uma string e então retornado.
            return new string(senha);
        }

        public int[] verificaSelecoesDoUsuario() 
        {
            int[] valoresPossiveis = new int[4];
            numeroPossibilidades = 0;
            
            Random randomizer = new Random();

            #region validacaoDosCheckBox

            if (checkBoxNumeros.Checked == true)
            {
                valoresPossiveis[numeroPossibilidades] = randomizer.Next(48, 57 + 1);
                MessageBox.Show(valoresPossiveis[numeroPossibilidades].ToString());
                numeroPossibilidades++;

            }

            if (checkBoxMinusculas.Checked == true)
            {
                valoresPossiveis[numeroPossibilidades] = randomizer.Next(97, 122 + 1);
                numeroPossibilidades++;

            }

            if (checkBoxMaiusculas.Checked == true)
            {
                valoresPossiveis[numeroPossibilidades] = randomizer.Next(65, 90 + 1);
                numeroPossibilidades++;

            }

            if (checkBoxEspeciais.Checked == true)
            {
                valoresPossiveis[numeroPossibilidades] = randomizer.Next(33, 47 + 1);
                numeroPossibilidades++;

            }
            #endregion

            return valoresPossiveis;
        }

    }
}



Viewing all articles
Browse latest Browse all 3

Latest Images

Trending Articles





Latest Images