BT

Auto-implemented Properties no VB e C#

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

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.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.