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

O nome "CPF" não existe no contexto atual

Fica o erro de 'O nome "CPF" não existe no contexto atual'

namespace ByteBank.Modelos
{
    public class Cliente
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public string Profissao { get; set; }
    }
    public override bool Equals(object obj)
    {
        Cliente outroCliente = obj as Cliente;

        if(outroCliente == null)
        {
            return false;
        }
        return CPF == outroCliente.CPF;
    }
}

Usei a dica do visual studio de deixar um string CPF = null; logo antes do return, mas não sei se isso afeta o restante do programa. E percebi que continua dando um erro "CS0116: Um namespace não pode conter diretamente membros, como campos, métodos ou instruções" quando tento reescrever o método Equals.

2 respostas
solução!

Alison,

O "Equals" precisa estar dentro da classe "Cliente" desta forma:

namespace ByteBank.Modelos
{
    public class Cliente2
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public string Profissao { get; set; }

        public override bool Equals(object obj)
        {
            Cliente outroCliente = obj as Cliente;

            if (outroCliente == null)
            {
                return false;
            }
            return CPF == outroCliente.CPF;
        }
    }
}

Logo, na versão .Net 6 (VS 2022) isso NÃO será mais necessário, pois aceitará desta forma também:

namespace ByteBank.Modelos;

public class Cliente2
{
    public string Nome { get; set; }
    public string CPF { get; set; }
    public string Profissao { get; set; }

    public override bool Equals(object obj)
    {
        Cliente outroCliente = obj as Cliente;

        if (outroCliente == null)
        {
            return false;
        }
        return CPF == outroCliente.CPF;
    }
}

[]'s,

Fabio I.

O método Equals esta fora da Classe Cliente2, espero ter ajudado, acredito que explicação do Fabio tenha deixado claro.