Desenvolvimento - C#

C# 3.0 - Auto Implemented Properties

O novo recurso Auto Implemented Properties do C# 3.0 reduz a quantidade de código necessária para implementarmos as propriedades das nossas classes e torna o código mais claro. Veja como implemantá-lo neste artigo.

por Carlos de Mattos



Introdução

Frequentemente os métodos de acesso às propriedades de uma classe (get/set) têm uma implementação trivial, seguindo um modelo simples, onde o acessor get é responsável por retornar o valor armazenado num campo privado da classe e o acessor set tem o propósito de atribuir um novo valor ao campo.

O novo recurso Auto Implemented Properties, disponível no C# 3.0, oferece uma sintaxe mais concisa para implementar esse modelo, onde o compilador C# gera automaticamente os campos privados. O exemplo a seguir o ajudará a entender esse novo recurso e seu impacto no dia-a-dia do programador.

Utilizando a versão beta do Visual Studio 2008 (se você ainda não baixou, acesse o link http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx) crie um novo projeto utilizando o template Console Application, atribua o nome desejado para a Solução, eu utilizarei o nome CSNewFeatures.

Na janela Solution Explorer, abra o arquivo Program.cs, e adicione uma nova classe chamada Movie, como demonstra o código abaixo:

namespace CSNewFeatures

{

public class Movie

{

}

class Program

{

static void Main(string[] args)

{

}

}

}

Na nova classe Movie, adicione duas propriedades (Título e Gênero). E modifique o método ToString() da seguinte forma:

public class Movie

{

public string Titulo { get; set; }

public string Genero { get; set; }

public override string ToString()

{

return Titulo + "\t" + Genero;

}

}

Modifique o método Main da classe Program para criarmos uma nova instância da classe Movie, veja o código:

static void Main(string[] args)

{

Movie m = new Movie();

m.Titulo = "Em busca da felicidade";

m.Genero = "Drama";

Console.WriteLine(m);

Console.ReadLine();

}

Execute a aplicação (CTRL+F5) para visualizar o resultado. Pressione qualquer tecla para finalizar a aplicação console e retornar para o ambiente de desenvolvimento do Visual Studio 2008.

Este modelo de construção requer que a propriedade tenha os dois métodos de acesso (get/set). Contudo, podemos atribuir modificadores de acesso para uma construção mais elaborada. Por exemplo, considere que você queira acrescentar uma propriedade (Codigo) que seja somente leitura (ReadOnly), para isto bastaria acrescentar o modificador private junto ao acessor set. Veja o código abaixo:

public class Movie

{

public int Codigo { get; private set; }

public string Titulo { get; set; }

public string Genero { get; set; }

public override string ToString()

{

return Codigo + "\t" + Titulo + "\t" + Genero;

}

}

Neste caso, a propriedade código seria implementada somente para leitura. Desta forma, temos que realizar duas modificações, a primeira será acrescentarmos um construtor na classe Movie. Este construtor terá um argumento do tipo inteiro que será atribuído à nova propriedade Código quando uma nova instância da classe for criada. Confira o código a seguir:

public class Movie

{

public string Codigo { get; private set; }

public string Titulo { get; set; }

public string Genero { get; set; }

public Movie(int iCodigo)

{

Codigo = iCodigo;

}

public override string ToString()

{

return Codigo + "\t" + Titulo + "\t" + Genero;

}

}

A segunda modificação será feita no método Main da classe Program para instanciarmos corretamente a classe Movie:

static void Main(string[] args)

{

Movie m = new Movie(1);

m.Titulo = "Em busca da felicidade";

m.Genero = "Drama";

Console.WriteLine(m);

Console.ReadLine();

}

Execute novamente a aplicação para observar o resultado.

Conclusão

O novo recurso Auto Implemented Properties do C# 3.0 reduz a quantidade de código necessária para implementarmos as propriedades das nossas classes e torna o código mais claro. Com esta melhoria, os desenvolvedores ganharão produtividade significante para executar uma tarefa que é tão comum em todas as aplicações.

Carlos de Mattos

Carlos de Mattos - É profissional certificado pela Microsoft desde 1998. Atua como desenvolvedor de soluções customizadas para o mercado corporativo há mais de 10 anos. Foi premiado pela Microsoft como MVP em 2003 e 2004. Tem diversos artigos publicados nas revistas FórumAccess e MSDN Magazine, nos Websites MSDN Online Brasil, Portal DevMedia/MSDN e Linha de Código. Carlos também atuou durante 5 anos junto à Comunidade Acadêmica na região de Sorocaba/SP ministrando palestras e treinamentos junto às Universidades e Colégios Técnicos. Atualmente está em Sorocaba/SP, na WD5 Solutions dedicando-se à implementação de soluções baseadas em tecnologia Microsoft.NET.