1
resposta

Como Iniciar a classe cliente quando o valor dela é passado como um parametro da classe contacorrente

Olá,

Estou com o seguinte problema, quando tentei fazer o último desafio eu adicionei o cosntrutor da seguinte maneira.

    public contacorrente(cliente titular, string nome_agencia, int numero_agencia, string conta)
    {
        titular = titular;
        nome_agencia = nome_agencia;
        numero_agencia = numero_agencia;
        conta = conta;
    }

E no program.cs eu tentei criar o objeto da seguinte maneira.

ContaCorrente conta4 = new ContaCorrente("Manoel", "Agencia1", 14, "1040-X"); Console.WriteLine(ContaCorrente.TotalDeContasCriadas);

ContaCorrente conta5 = new ContaCorrente("José", "Agencia1", 13, "1030-X"); Console.WriteLine(ContaCorrente.TotalDeContasCriadas);

Porém ele vala que o primeiro argumento apresenta o seguinte erro "Severity Code Description Project File Line Suppression State Error CS0246 The type or namespace name 'cliente' could not be found (are you missing a using directive or an assembly reference?) bytebank C:\Users\aalmeida\source\repos\bytebank\bytebank\Contas\ContaCorrente.cs 107 Active " Acredito que devo instanciar também a classe Cliente, porém como fazer isso nessa linha onde estou passando os parametros?

1 resposta

Anselmo,

O C# é "case-sensitive", isso quer dizer que uma variável escrita com letra maiúscula é diferente do mesmo nome com letras minúsculas.

Conclusão, no seu caso você é obrigado a colocar a palavra-chave "this." na frente da variável que recebe o valor... ficaria desta forma:

public contacorrente(cliente titular, string nome_agencia, int numero_agencia, string conta)
{
    this.titular = titular;
    this.nome_agencia = nome_agencia;
    this.numero_agencia = numero_agencia;
    this.conta = conta;
}

Ou então você pode escrever com a primeira letra maiúscula ou até mesmo colocar o underscore na frente da primeira letra:

public ContaCorrente(Cliente titular, string nome_agencia, int numero_agencia, string conta)
{
    Titular = titular;
    Nome_Agencia = nome_agencia;
    Numero_agencia = numero_agencia;
    Conta = conta;
}

NÃO esqueça de colocar também a letra maiúscula na declaração da variável.

public contacorrente(cliente titular, string nome_agencia, int numero_agencia, string conta)
{
    _titular = titular;
    _nome_agencia = nome_agencia;
    _numero_agencia = numero_agencia;
    _conta = conta;
}

Neste último NÃO esqueça de colocar o "underscore" também na declaração da variável.

Espere... mas... qual a diferença entre eles?!? Nenhuma! É somente uma padronização que cada empresa usa. Um sistema tem que usar sempre o mesmo padrão para não virar uma gigantesca macarronada!

[]'s,

Fabio I.