Usuário com melhor resposta
Ajuda com código para Validação de CPF

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,
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
-
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 ;)
- Marcado como Resposta Harley AraujoModerator terça-feira, 10 de abril de 2012 13:51
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
-
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 ;)
- Marcado como Resposta Harley AraujoModerator terça-feira, 10 de abril de 2012 13:51
-