InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Auto-implemented Properties no VB e C#

Postado por Jonathan Allen , traduzido por Victor Franzonatto em 16 Jul 2009

Seções
Desenvolvimento,
Arquitetura e Design
Tópicos
.NET ,
Design de Linguagens
Tags
VB 10 ,
C# ,
Visual Basic.NET

C# adicionou auto-implemented properties na versão 3, mas o Visual Basic foi incapaz de igualar-se naquele momento. Com a iminente release do .Net 4.0, VB avançou nesta área, mas com um toque diferente. Em C#, auto-implemented properties são escritas da seguinte forma:

public string FirstName {get; set;}

Visual Basic requer a palavra-chave Property, que significa que não precisa do par set/get para distinguir de um atributo comum. Assim, auto-implemented properties no VB são apenas uma nova declaração para um atributo.

Public Property FirstName As String

Para ambos, VB e C#, a propriedade é automaticamente associada a um atributo privado. Em C# este membro tem um nome gerado automaticamente como “<k_BackingField“ e, obviamente, não é acessível utilizando a sintaxe normal do C#. O Visual Basic é menos criativo, limitando-se a adicionar um underscore antes do nome da propriedade. Portanto, se sua propriedade é chamada de “FirstName“, existirá um atributo privado chamado ”_FirstName”.

Ter acesso direto a esse atributo privado deve tornar mais coisas possíveis. Pensando de forma lógica, ao menos uma deveria ser capaz de prover coisas como marcar uma propriedade ReadOnly e informar seu valor pelo construtor. Infelizmente, isso não é uma opção.

Apesar de sua aparente limitação, está realmente mais flexível. Você pode marcar o setter como private ou protected, efetivamente resultando no mesmo efeito quando tendo acesso direto ao atributo privado.

public string FirstName {get; private set;}

Uma limitação para ambas as linguagens é que elas ainda não tem nenhuma feature para objetos imutáveis. Se você quiser objetos onde as propriedades são todas somente leitura e atribuir os valores no construtor, você ainda tem que escrever o mesmo código que escreveria no .Net 1.0.

Conteúdo Educacional

Formando equipes de alto desempenho, parte 1: Início e fases de evolução

Nesta primeira parte de uma série sobre equipes de alto desempenho e gerenciamento Agile, veja uma introdução geral e uma apresentação dos estágios de formação das equipes.

Business Model Canvas, passo a passo

O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.

Google Apps Script, Parte 2: Google Docs, triggers e envio de emails

Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.

Serviços de cloud computing PaaS: um guia para desenvolvedores Java

Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.

Canvas de Modelo de Negócios: uma contribuição para o sucesso de Startups

O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.

Entrevista com Rebecca Parsons Parte 2: Agile Distribuído, Arquitetura vs. Design e SOA

Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.

Entrevista com Rebecca Parsons Parte 1: Agile nas Empresas e Arquitetura Evolucionária

Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.

Agile das equipes à organização: o papel do gerente, estratégias e dicas para a adoção

Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.