Jump to content

Dúvida em saber uma propriedade do C#


eduardo
 Share

Recommended Posts

Boas pessoal

É o seguinte eu necessitava de saber qual é a propriedade que permite saber o tamanho de caracteres num número inteiro. Para strings sei que é com a propriedade length.

O que eu pretendo mesmo é calcular uma função TestarNumContribuinte , que retorne True se o seu tamanho é igual a 9 , e False caso contrário.

Obrigado!

Cumps

Link to comment
Share on other sites

softclean , Obrigado , mas está a dar erro , é que a minha função é booleana e diz que não consegue converter inteiro para booleano. Vê aí :

 public bool TestarNumCont(int num_contribuinte)
        {

            if (num_contribuinte.ToString().Length=9)
                return true;
            else
                return false;
        }

Obrigado.

Link to comment
Share on other sites

Sim, da maneira que fizeste estás a atribuir um valor a uma propriedade que é só de leitura, logo será o ==.

Já agora, podes reduzir essa função a uma linha, que pode facilitar a leitura de código mais tarde:

public bool TestarNumCont(int num_contribuinte)
        {
            return (num_contribuinte.ToString().Length == 9)
        }

Visto que o teste que estás a fazer no if retorna um booleano, podes usá-lo para retorno da função.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Em vez de = mete == .

MilitisChristus Obrigado! Era isso mesmo =)

Sim, da maneira que fizeste estás a atribuir um valor a uma propriedade que é só de leitura, logo será o ==.

Já agora, podes reduzir essa função a uma linha, que pode facilitar a leitura de código mais tarde:

public bool TestarNumCont(int num_contribuinte)
        {
            return (num_contribuinte.ToString().Length == 9)
        }

Visto que o teste que estás a fazer no if retorna um booleano, podes usá-lo para retorno da função.

softclean , Obrigado! Sim tens razão , uma linha basta.

Já agora, aproveito para dizer o que queria fazer com esta função : ela está inserida em WCF Service (ASP.NET Web Service Application) e preciso de invoca-la  para uma Class Library do tipo Workflow, e não estou a ver como se faz.

Se alguém me puder ajudar agradecia muito.

Obrigado

Cumps.

Link to comment
Share on other sites

Se estas a tentar validar 1 NIF, podes usar mais que validar se tem 9 digitos, exitem regras para isso. Encontras facilmente codigo na net para isso.

Deixo-te aqui 1 exemplo.

public static bool IsValidNIF(string nif)
        {
            char x;
            int checkDigit;

            //Verifica se é numerico e tem 9 digitos
            if (IsNumeric(nif) && nif.Length == 9)
            {
                //Get the first number of NIF
                 x = nif[0]; 

                //Verifica se o nif comeca por (1, 2, 5, 6, 8, 9)
                if (x.Equals('1') || x.Equals('2') || x.Equals('5') || x.Equals('6') || x.Equals('8') || x.Equals('9'))
                {
                    //Calcula o CheckDigit 
                    checkDigit = (Convert.ToInt16(x.ToString()) * 9);
                    for (int i = 2; i <= 8; i++)
                    {
                        checkDigit += Convert.ToInt16(nif[i - 1].ToString()) * (10-i);
                    }
                    checkDigit = 11-(checkDigit % 11); 

                    //Se checkDigit for superior a 10 passa a 0
                    if (checkDigit >= 10) checkDigit = 0; 

                    //Compara o digito de controle com o último numero do NIF
                    //Se igual, o NIF é válido.
                    if (checkDigit.ToString() == nif[8].ToString()) return true;
                }
            }
            
            return false;
         }


public static bool IsNumeric(string inputString)
{
       return Regex.IsMatch(inputString, "^[0-9]+$");
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.