Ir ao conteúdo
  • Cadastre-se
Paulo Fiori

C# Uma posição do vetor está como nulll sendo que eu coloquei algo

Recommended Posts

Galera, estou tendo dificuldade em imprimir uma posição do vetor na tela, eu inicializei um vetor numa classe e coloquei algo nas quatros primeiras posições, só que quando eu procuro se existe algo naquela posição no vetor, sempre fala que está null. Alguém pode me ajudar?

class Pessoa{
       protected int[] ArmazenaFuncionarioID = new int[100];
        protected string[] ArmazenaFuncionarioNome = new string[100];
        protected string[] ArmazenaFuncionarioCPF = new string[100];
        protected string[] ArmazenaFuncionarioSexo = new string[100];
        protected int Indice = 3;

        public void FuncionariosIniciais()
        {
            ArmazenaFuncionarioID[0] =  2;
            ArmazenaFuncionarioNome[0] = "Paulo";
            ArmazenaFuncionarioCPF[0] = "022.595.536-99";
            ArmazenaFuncionarioSexo[0] = "M";
            ArmazenaFuncionarioID[1] = 3;
            ArmazenaFuncionarioNome[1] = "Lucas";
            ArmazenaFuncionarioCPF[1] = "042.534.236-09";
            ArmazenaFuncionarioSexo[1] = "M";
            ArmazenaFuncionarioID[2] = 4;
            ArmazenaFuncionarioNome[2] = "Valentina";
            ArmazenaFuncionarioCPF[2] = "123.456.789-00";
            ArmazenaFuncionarioSexo[2] = "F";
            ArmazenaFuncionarioID[3] = 5;
            ArmazenaFuncionarioNome[3] = "Maria";
            ArmazenaFuncionarioCPF[3] = "987.654.321-00";
            ArmazenaFuncionarioSexo[3] = "F";
        }
}

class Relatorio

{
        Cadastrar NovoFuncionario = new  Cadastrar();
        Funcionario VelhoFuncionario = new Funcionario();

      public string IdFuncionario(int IdRecebido)
        {
            if (IdRecebido <= 5)
            {
                IdRelatorio = "Id: " + "" + VelhoFuncionario.retornaId(IdRecebido);
            }
            else
            {
                IdRelatorio = "Id: " + "" + NovoFuncionario.NovoId(IdRecebido);
            }
            return IdRelatorio;
        }

}
                               
    class Funcionario : Pessoa
    {
        public int retornaId(int IdSelecionado)
        {
            int IdRelatorio = 0;
            for (int i = 0; i <= Indice; i++)
            {
                if (ArmazenaFuncionarioID[i] == IdSelecionado) IdRelatorio = ArmazenaFuncionarioID;
            }
            return IdRelatorio;
        }
}

 

Registro de Ponto - Quase Definitivo.rar

quem quiser o código completo pra me ajudar melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é necessario colocar o índice na ultima parte do código?

if (ArmazenaFuncionarioID == IdSelecionado) IdRelatorio = ArmazenaFuncionarioID;

Não manjo de C, mas acho que possa ser isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

mano é o seguinte você não chamou sua função (método) FuncionariosIniciais() por isso não tem instruções pra incrementar.

Se você quiser criar essas instruçôes sem chamar o método na classe filha (Funcionario) sugiro chamar método no construtor:


 

class Pessoa
{
       Pessoa()
       {
              FuncionariosIniciais();
       }
       FuncionariosIniciais()
       {...}
}

 

desse jeito você vai poupar de deixar o método FuncionariosIniciais() publico, pode deixa-lo privado da classe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu Funcionou, mas agora to com outra duvida, quando eu adiciono um novo contato a posição que eu procuro esta vazia sendo que eu guardei algo lá

    class Cadastrar:Pessoa
    {
        public void NovoFuncionario(int id, string nome, string cpf, string sexo)
        {
            Indice++;
            ArmazenaFuncionarioID[Indice] = id;
            ArmazenaFuncionarioNome[Indice] = nome;
            ArmazenaFuncionarioCPF[Indice] = cpf;
            ArmazenaFuncionarioSexo[Indice] = sexo;
        }
    }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, Simon Viegas disse:

@Paulo Fiori, para facilitar, poste o enunciado completo da questão.

 

No aguardo.

 

 

Não é questão, é um trabalho da faculdade onde cada um faz um tema, o meu tema é fazer um registro de ponto, ai a duvida é que não to conseguindo imprimir os dados dos novos funcionários dentro de um array, esses novos funcionários eu pego os dados do form principal e mando para a classe cadastrar, e como cadastrar é a classe filha da classe pessoa eu pego o array de cada dado especifico e salvo, mas na hora de imprimir não aparece os dados, é como se tivesse nulo o array.

Se quiser da uma olhada no trabalho pra ajudar

Registro de Ponto - Quase Definitivo.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×