3
respostas

Propriedades de classes

Olá. Tudo bem?

Qual é a diferença entre os dois códigos abaixo?

// Propriedade n° 1
public IList<string> example { get; private set; }
// Propriedade n° 2
private IList<string> _example;
public IList<string> { 
    get
    {
        return ReadOnlyCollection<string>(_example);
    }
}

Desde já, agradeço.

3 respostas

Glenn,

Desculpe, apresentou um erro aqui...

Example2

Mas basicamente existem cinco "code snippet" para o "Prop" a saber:

Code Snippet Prop

Na propriedade nº 1 é usado o "propg" e a lista pode ser lida, mas gravada somente localmente (private)

Na propriedade nº2 é o "propfull" alterado. A lista só pode ser recuperada para leitura? Mas "IReadOnlyCollection" funciona desse jeito? Não conheço essa interface de coleção... "ReadOnly" (somente leitura)...

Fabio I.

Fala Fabio. Beleza?

Cara, dá uma olhada nos exemplos que coloquei ali novamente... Eu não estou usando "IReadOnly", estou usando a classe "ReadOnly", conforme apresentado na aula de listas.

O que eu não consegui entender é a diferença entre utilizar a propriedade conforme o n°1 e n°2.

Glenn,

Acho que a única diferença é que:

  • A propriedade nº 1 ficou mais rápido de escrever o código.
  • A propriedade nº 2 ficou aberta para que novas linhas de código sejam inseridas e a variável "_ example" foi isolada.