Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Senhas incorretas

Se eu boto para iniciar, as informações de senha se apresentam como "Senha Inválida", sendo que eu coloquei as senhas verdadeiras. Não entendo porque isso ocorre...

public static void UsarSistema()
        {
            SistemaInterno sistemaInterno = new SistemaInterno();

            GerenteDeConta camila = new GerenteDeConta("529.432.090-65");
            camila.Nome = "Camila";
            camila.Senha = "abc";

            Diretor roberta = new Diretor("623.232.148-19");
            roberta.Nome = "Roberta";
            roberta.Senha = "123";

            sistemaInterno.Logar(roberta, "123");
            sistemaInterno.Logar(camila, "abc");

        }

CLASSE LOGAR

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TheByteBank.Funcionarios;

namespace TheByteBank.Sistemas
{
    public class SistemaInterno
    {
        public bool Logar(Autenticavel funcionario, string senha)            
        {
            bool usuarioAutenticado = funcionario.Autenticar(senha);
            if (usuarioAutenticado)
            {
                Console.WriteLine("Bem vindo ao sistema!");
                return true;
            }
            else
            {
                Console.WriteLine("Senha Incorreta");
                return false;
            }
        }
    }
}

CLASSE AUTENTICAVEL

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TheByteBank.Funcionarios;

namespace TheByteBank.Sistemas
{
    public abstract class Autenticavel : Funcionario
    {
        public string Senha { get; set; }

        public Autenticavel(double salario, string cpf)
            : base(salario, cpf)
        {

        }

        public bool Autenticar(string senha)
        {
            return Senha == senha;
        }
    }
}
3 respostas

Olá Artur!

É muito estranho, pois fiz testes com seu código e eles funcionaram normalmente. Usei tanto o código das aulas quanto os seus e o resultado foi sempre o mesmo.

Estou compartilhando o link do meu projeto para que você possa comparar o resultado.

Este foi o resultado do meu teste:

Bom dia, se não resolveu ainda Arthur tenta fazer comparação com o equals, em c# nunca programei mais acho que uma string ai deve ter o metodo equals, tenta fazer assim.

 public bool Autenticar(string senha)
        {
            return Senha.equals(senha);
        }

Se não tiver esse método desculpa a ignorância

solução!

Boa tarde. Já resolvi o problema com Interfaces, conforme prossegui na aula do professor.

Michel, seu código é válido sim, mas na sintaxe do C# só muda um pequeno detalhe:

public bool Autenticar(string senha)
        {
            return Senha.Equals(senha);
        }

o E fica maiúsculo! haha..

Obrigado pela ajuda pessoal, bons estudos!