Método Dispose e Propriedades – Garbage Collector, Propriedades e Indexadores: Estrutura da Linguagem – Parte 2
Confira neste artigo o método Dispose e as Propriedades.
Olá pessoal, neste artigo veremos os conceitos finais do Garbage Collector, como o método Dispose e a classe GC, e começaremos a ver as Propriedades. Acompanhem:
Dispose – O método Dispose é uma convenção do .NET Framework para que as classes disponibilizem ao programador um meio de liberar a memória usada sem ter que esperar o Garbage Collector fazer isso.
O Dispose pode ser colocado como uma alternativa ao Destructor, onde o programador pode chama-lo a qualquer hora, e tem permissão para acessar tipos gerenciados sem restrições.
Podemos chamar o método Dispose para liberar um recurso expansível, como fechar um controle de arquivo imediatamente.
Com relação à localização do método Dispose, ela se dá na interface IDisposable do namespace System. O método Dispose é o único membro desta interface, que deve ser herdado e implementado pelos objetos dispensáveis. Em seguida, chamamos o método Dispose do mesmo modo que um método comum para dar início ao Garbage Collector determinístico.
Veja abaixo um exemplo com o uso do Dispose e seu respectivo resultado:
class Program : IDisposable
{
string valor = "Objeto Criado";
public void Dispose()
{
String valor = null;
Console.WriteLine("A memória ocupada foi liberada!");
}
static void Main(string[] args)
{
Program objProgram = new Program();
Console.WriteLine(objProgram.valor);
objProgram.Dispose();
Console.ReadKey();
}
}
Observação importante: um recurso interessante do C# é o comando using. Este comando permite, de maneira fácil, que o método Dispose seja sempre chamado assim que uma variável seja usada. Veja um exemplo:
using (System.IO.StreamWriter objStreamWriter = new System.IO.StreamWriter("dados.txt"))
{
objStreamWriter.Write("Show!");
objStreamWriter.Close();
}
No exemplo acima, o método Dispose do objeto objStreamWriter será chamado automaticamente, mesmo que o comando gere um erro em tempo de execução. Portanto, o comando using é uma maneira de o programa ter certeza que, se o objetivo tiver que liberar recursos, ele o fará, não importa o que aconteça.
Classe GC – A classe GC encontra-se no namespace System e contém métodos estáticos que podem ser chamados. Por exemplo, para forçar a coleta de lixo do sistema, basta chamar o método:
GC.Collect();
Embora não seja aconselhável o programador chamar diretamente o recurso de coleta de lixo no .NET Framework através do programa, isso pode ser útil em casos onde o sistema realmente ocupa uma grande quantidade de memória.
Propriedades – Uma propriedade é um valor que a classe disponibiliza para gravação, leitura ou ambas as ações. Logicamente, uma propriedade é semelhante a um campo. No entanto, esta sintaxe semelhante a do campo é convertida automaticamente pelo compilador em chamadas para acessadores especiais semelhantes aos dos métodos.
Veja abaixo o formato de uma declaração da propriedade (presente no .NET Framework 2.0):
Modificador_De_Acesso Tipo Nome_Da_Propriedade
{
get
{
//Bloco de código de leitura
}
set
{
//Bloco de código de escrita
}
}
Acima podemos constatar que uma propriedade pode conter dois blocos de código, que iniciam com as palavras-chave get e set. Veja a descrição deles:
·Bloco get – Este bloco contém expressões que são executadas assim que ocorre a leitura da propriedade.
·Bloco set – Este bloco contém expressões que rodam assim que a propriedade é escrita.
Observação: Lembrando que a partir do Visual Studio 2008 podemos declarar nossos “getters” e “setters” da seguinte forma (mais nada nos impede de usar a forma apresentada anteriormente!):
public string valor { get; set; }
Assim poupamos código e melhoramos a performance de nossa aplicação.
Fonte de Consulta: Apostila de C#, da Impacta Tecnologia.
Assim finalizo o artigo. Na próxima e última parte veremos exemplos práticos com as Propriedades e veremos também os Indexadores, não percam!
Um abraço, e até o próximo artigo.
Wellington Balbo de Camargo
wellingtonbalbo@gmail.comArtigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo