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

[Dúvida] Tentando entender a necessidade da Propriedade Autoimplementada de forma genérica.

Bom dia, tarde ou noite; Gostaria de compreender melhor qual é a vantagem prática da "Propriedade Autoimplementada", vamos por partes, eu entendo a vantagem de colocar no código a restrição Private e usar a propriedade para definir o Get e o Set, porem a utilização da Propriedade Autoimplementada ainda não faz tanto sentido para mim se utilizada de forma genérica, por exemplo:

  1. Se eu definir instruções prévias para o Set de como ele vai receber essa informação faz sentido;
  2. Más se eu apenas definir "public Variavel {get; set;}". Qual é a diferença entre eu apenas definir uma variável e utiliza-la de forma "crua", e declarar a variável e utilizar Get o Set de forma genérica publicamente, sem instruções adicionais para o get o set ? Mesmo assim ela é mais segura ou não faz uma diferença direta quando utilizado de forma genérica? Ou a diferença real é só quando utilizada de com instruções extras e de forma privada?

Espero ter expressado a duvida minha duvida de forma correta, obrigado pela atenção, novamente, Bom dia, tarde ou noite.

3 respostas
solução!

Thiago,

Vou tentar explicar...

A Propriedade Autoimplementada deixa o código mais "limpo", pois você não precisa usar nenhuma validação dentro da propriedade... então a declaração pode ficar dentro de apenas uma linha.

  1. Não poderá ter instruções (lógica adicional) dentro dela;

  2. Existe uma diferença entre uma variável e uma propriedade. A Variável é declarada dentro da classe, já a Propriedade é um membro da classe junto com os Métodos e os Eventos;

Abaixo separei alguns links interessantes para ampliar seu conhecimento, sugiro que leia:

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

C# - Propriedades Auto-Implementadas

José Carlos Macoratti

A partir do C # 3.0, foi implementada o recurso das propriedades auto-implementadas.

Vamos comparar como era antes e como ficou a declaração das propriedades usando o recurso das propriedades auto-implementadas

https://macoratti.net/11/05/c_pai.htm

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

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

Artigo - 05/10/2022 - 2 minutos para o fim da leitura

As propriedades autoimplementadas tornam a declaração de propriedade mais concisa quando nenhuma lógica adicional for necessária nos acessadores de propriedade. Elas também habilitam o código do cliente a criar objetos. Ao declarar uma propriedade, como mostrado no exemplo a seguir, o compilador cria um campo de suporte privado e anônimo que pode ser acessado somente por meio dos acessadores get e set da propriedade. Em C# 9 e posterior, os acessadores init também podem ser declarados como propriedades implementadas automaticamente.

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

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

Propriedade Vs variáveis

Propriedade é realmente necessária?

Na verdade é pra se pensar se realmente precisa dar acesso à propriedade. Costuma-se dizer que os campos internos devem ser acessados através de outros métodos mais significativos e não através de acessadores diretos. Claro que isso é exagero na maior parte dos casos. Tem situações que a única coisa que se deseja é acessar a propriedade pura e simplesmente. Aí faz sentido.

https://pt.stackoverflow.com/questions/133924/propriedade-vs-vari%C3%A1veis

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

C# – Para Iniciantes – Parte 5 – Properties

Publicado em 7 de agosto de 2012

Eduardo Pires

Uma propriedade (Property) é um membro de uma classe que fornece um mecanismo flexível para ler, gravar ou calcular o valor de um dado em particular. As propriedades permitem que uma classe exponha de uma maneira pública a obtenção e definição destes valores.

https://www.eduardopires.net.br/2012/08/c-csharp-iniciantes-properties/

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

Quais são as diferenças entre propriedades e métodos em C#?

Antonio Maniero

https://pt.quora.com/Quais-s%C3%A3o-as-diferen%C3%A7as-entre-propriedades-e-m%C3%A9todos-em-C

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

Propiedades X Variaveis C#

Fórum MSDN

https://social.msdn.microsoft.com/Forums/vstudio/pt-BR/a2af0093-b9e4-42d4-b5d5-9b04b7d8db60/propiedades-x-variaveis-c?forum=vscsharppt

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

Ué? Esta explicação NÃO serve para C# também? Eu acredito que serve!

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

Diferenças entre propriedades e variáveis no Visual Basic

Artigo - 28/11/2022 - 2 minutos para o fim da leitura

Variáveis

Uma variável corresponde diretamente a um local de memória. Você define uma variável com uma única instrução de declaração. Uma variável pode ser uma variável local, definida dentro de um procedimento e disponível somente dentro desse procedimento, ou pode ser uma variável de membro, definida em um módulo, classe ou estrutura, mas não dentro de qualquer procedimento. Uma variável de membro também é chamada de campo.

Propriedades

Uma propriedade é um elemento de dados definido em um módulo, classe ou estrutura. Você define uma propriedade com um bloco de código entre as instruções Property e End Property. O bloco de código contém um procedimento Get, um procedimento Set ou ambos. Esses procedimentos são chamados de procedimentos de propriedade ou acessadores de propriedade. Além de recuperar ou armazenar o valor da propriedade, eles também podem executar ações personalizadas, como atualizar um contador de acesso.

Diferenças

...

https://learn.microsoft.com/pt-br/dotnet/visual-basic/programming-guide/language-features/procedures/differences-between-properties-and-variables

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

[]'s,

Fabio I.

Então com propriedade eu não consigo deixar um valor pre-definido Ex: public string nome = "Não identificado"; ?

Bom dia Luiz Fernando,

É possível sim, olha a construção abaixo:

public class ContaCorrente
{
    public double Saldo { get; set; } = 200.0;   
    public string Titular{get;set;}= "Não identificado"; 
}

Conseguimos definir um valor default como em um campo, esse recurso foi adicionando nas últimas versões da linguagem, vou deixar um link de referência:

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

Espero que tenha ajudado e, qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!