none
Ajuda com código para Validação de CPF RRS feed

  • Pergunta

  • Boa noite!

    Sou iniciante no C#, e preciso de uma pequena ajuda com o código que consegui para validar CPF, a postagem que encontrei este código (http://www.devmedia.com.br/validacao-de-cpf-e-cnpj/3950) seria para criar uma ClassLibrary. Mas não gostaria de fazer desta maneira, gostaria simplesmente inserir a validação em uma classe e chamar a validação quando clicar em um botão, então o que eu fiz:

    No Visual Studio 2008, criei uma classe com o nome ValidacaoCPF.cs, com o seguinte código:

       

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace WindowsFormsApplication1
    {
    class ValidacaoCPF
        {
        public static bool ValidaCPF(string vrCPF)

            {

                string valor = vrCPF.Replace(".", "");

                valor = valor.Replace("-", "");

                if (valor.Length != 11)

                    return false;


                bool igual = true;

                for (int i = 1; i < 11 && igual; i++)

                    if (valor[i] != valor[0])

                        igual = false;

                if (igual || valor == "12345678909")

                    return false;


                int[] numeros = new int[11];


                for (int i = 0; i < 11; i++)

                  numeros[i] = int.Parse(

                    valor[i].ToString());

                int soma = 0;

                for (int i = 0; i < 9; i++)

                    soma += (10 - i) * numeros[i];

                int resultado = soma % 11;

                if (resultado == 1 || resultado == 0)

                {

                    if (numeros[9] != 0)

                        return false;

                }

                else if (numeros[9] != 11 - resultado)

                    return false;

                soma = 0;

                for (int i = 0; i < 10; i++)

                    soma += (11 - i) * numeros[i];

                resultado = soma % 11;

                if (resultado == 1 || resultado == 0)

                {

                    if (numeros[10] != 0)

                        return false;

                }

                else

                    if (numeros[10] != 11 - resultado)

                        return false;

                return true;

            }
        }
    }

     

    Depois criei um formulário com o nome padrão mesmo, Form1.cs, adicionei a este form um MaskedTextBox com o nome “mskCPF” e um botão com o nome “btnValidaCPF”. Nas propriedades do botão adicionei o seguinte código:

                             

    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 WindowsFormsApplication1
    {
        public partial class Form1 : ValidacaoCPF 
        {
            public Form1()
            {
                InitializeComponent();
            }

            public void btnValidaCPF_Click(object sender, EventArgs e)
            {

      if (Validoes.ValidaCPF(mskCPF.Text))

                    MessageBox.Show("CPF Válido!");

                else

                    MessageBox.Show("CPF Inválido!");
            }
        }
    }

     

    Em fim, o Visual Studio está mostrando o seguinte erro na linha 2 do arquivo Form1.Designer.cs: Inconsistent accessibility: base class 'WindowsFormsApplication1.ValidacaoCPF' is less accessible than class 'WindowsFormsApplication1.Form1'                                                                                                                                                                                                                                             Agradeço antecipadamente,                                          

    segunda-feira, 9 de abril de 2012 00:22

Respostas

  • Emerson,

    Mude o seguinte:

    class ValidacaoCPF

    para isto:

    public class ValidacaoCPF

    O erro acontece porquê o seu formulário é publico e a sua classe não é.

    []s,


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    • Sugerido como Resposta A.ime segunda-feira, 9 de abril de 2012 15:12
    • Marcado como Resposta Harley AraujoModerator terça-feira, 10 de abril de 2012 13:50
    segunda-feira, 9 de abril de 2012 00:48
  • Na verdade o erro é o seguinte: 

    Você está chamando uma classe chamada 'Validoes' e essa classe não existe. Sua classe chama-se 'ValidacaoCPF', ai vc tem que chamar assim:

      if (ValidacaoCPF.ValidaCPF(mskCPF.Text))
          MessageBox.Show("CPF Válido!");
      else
          MessageBox.Show("CPF Inválido!");

    Isso foi somente um erro de digitação.

    Se ajudou não esqueça de marcar como resposta ;)

    segunda-feira, 9 de abril de 2012 14:16

Todas as Respostas

  • Emerson,

    Mude o seguinte:

    class ValidacaoCPF

    para isto:

    public class ValidacaoCPF

    O erro acontece porquê o seu formulário é publico e a sua classe não é.

    []s,


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    • Sugerido como Resposta A.ime segunda-feira, 9 de abril de 2012 15:12
    • Marcado como Resposta Harley AraujoModerator terça-feira, 10 de abril de 2012 13:50
    segunda-feira, 9 de abril de 2012 00:48
  • Na verdade o erro é o seguinte: 

    Você está chamando uma classe chamada 'Validoes' e essa classe não existe. Sua classe chama-se 'ValidacaoCPF', ai vc tem que chamar assim:

      if (ValidacaoCPF.ValidaCPF(mskCPF.Text))
          MessageBox.Show("CPF Válido!");
      else
          MessageBox.Show("CPF Inválido!");

    Isso foi somente um erro de digitação.

    Se ajudou não esqueça de marcar como resposta ;)

    segunda-feira, 9 de abril de 2012 14:16
  • Desculpe a demora prezados colegas Carlos e Renato, 

    Isso mesmo Carlos, você estava certo... Sua dica ajudou muito, já consegui resolver aqui...

    Obrigado.

    sábado, 22 de setembro de 2012 23:04