Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferença entre Propriedade e o Atributo de ContaCorrente

Temos uma classe ContaCorrente com algumas propriedades.

Vou escrever de duas formas o campo "conta", gostaria de saber qual a diferença das duas e quando usar cada um tipo:

public string conta;

public string Conta { get; set; }

Tanto que na aula ele altera a conta para uma propriedade autoimplementada, porém o saldo ele não altera, ficando:

public double saldo = 100;

1 resposta
solução!

Gustavo,

Vou tentar explicar...

Isso funciona para você encapsular a propriedade dentro de uma classe, por exemplo.

public string conta; // variável

public string Conta { get; set; } // propriedade

Em outras palavras, você NÃO pode acessar a variável "conta" sem acessar uma propriedade ou um método "Conta".

O motivo real: - Passar por regras de negócio que podem ser vistas como regras de segurança de acesso fazendo validações, como, por exemplo: - O valor NUNCA pode ficar negativo.

No caso, como é uma "Propriedade Autoimplementada", o objetivo continua sendo restringir a acessibilidade do acessador.

São boas práticas de programação S.O.L.I.D.

NÃO é para deixar alterar mesmo.

Já o SALDO, não está usando uma propriedade, por isso podes er alterado.

Por favor, leia os artigos abaixo:

===============================================================

Propriedades (Guia de Programação em C#)

Artigo - 06/04/2023

Propriedades auto implementadas

public class SaleItem
{
    public string Name
    { get; set; }

    public decimal Price
    { get; set; }
}

As propriedades implementadas automaticamente podem declarar diferentes acessibilidades para os acessadores get e set. Normalmente, você declara um acessador público get e um acessador privado set. Saiba mais no artigo sobre como restringir a acessibilidade do acessador.

https://learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/properties

===============================================================

Restringindo a acessibilidade ao acessador (Guia de Programação em C#)

Artigo - 06/04/2023

private string _name = "Hello";

public string Name
{
    get
    {
        return _name;
    }
    protected set
    {
        _name = value;
    }
}

Neste exemplo, uma propriedade chamada Name define um acessador get e set. O acessador get recebe o nível de acessibilidade da propriedade em si, public nesse caso, embora o set acessador esteja restrito explicitamente ao aplicar o modificador de acesso protegido ao acessador em si.

https://learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility

===============================================================

String Classe

Representa o texto como uma sequência de unidades de código UTF-16.

https://learn.microsoft.com/pt-br/dotnet/api/system.string?view=net-8.0

===============================================================

public (Referência de C#)

Artigo - 06/04/2023

A palavra-chave public é um modificador de acesso para tipos e membros de tipo. Acesso público é o nível de acesso mais permissivo. Não há nenhuma restrição quanto ao acesso a membros públicos, como neste exemplo:

https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/public

===============================================================

Consegui explicar?

[]'s,

Fabio I.