C# - Apresentando Partial Class


 Neste artigo vou apresentar o conceito de Partial Class na linguagem C#.

Na linguagem C# , quando você cria uma classe concreta você a define usando a seguinte sintaxe:

<modificador de acesso> class  <nome da classe>
{
       <construtor>
       <campos>
       <propriedades>
       <métodos>
       <eventos>
       <delegates>
       <indexadores>
       <classe aninhadas>
}

De forma resumida uma classe é definida pela palavra reservada class seguida de seu nome e o corpo da classe é definido dentro das chaves {....}  onde definimos os membros da classe.

Exemplo:

public class  MinhaClasse
{
       <membros>
}

Quando definimos uma classe usando essa sintaxe, temos que definir em um único arquivo físico com extensão .cs, todos os membros da classe. Dessa forma não podemos declarar uma classe em dois arquivos separados em um mesmo projeto.

A partir da versão 2.0 a plataforma .NET introduziu o recurso chamado  partial class que permite ter uma única classe ser implementada em múltiplos arquivos físicos com extensão .cs.

Isso é feito usando o modificador partial que pode ser aplicado em uma classe, método, interface e struct.

Usando o conceito de partial class você pode dividir a definição de sua classe em mais de um arquivo físico.

Logicamente não há diferença alguma para o compilador pois quando uma partial class é compilada o compilador agrupa todos os arquivos da classe parcial gerando uma única entidade.(O código da linguagem intermediária formado é o mesmo).

Assim vamos criar a classe parcial MinhaClasseParcial em dois arquivos físicos diferentes:

MinhaClassePropriedades.cs

public partial class MinhaClasseParcial
{
     public DateTime DataNascimento {  get;  set; }
     public string Nome { get; set; }
}

MinhaClasseMetodos.cs

public partial class  MinhaClasseParcial
{
     public TimeSpan CalculaIdade(DateTime DataNascimento)  
     {
        return (DateTime.Now.Date - DataNascimento);
     }
}

Acima temos a definição de uma partial class em dois arquivos físicos distintos:

  1. minhaClassePropriedades.cs - Contém as propriedades da classe parcial MinhaClasseParcial;
  2. minhaClasseMetodos.cs - Contém os métodos da classe parcial MinhaClasseParcial;

Uma das vantagens em se utilizar as Partial Class é poder separar a lógica de negócio da interface de usuário em arquivos distintos facilitando a manutenção e o trabalho em equipe. (Será..??)

Algumas regras que devemos ter mente ao usar as classes parciais:

Na figura abaixo vemos que a instância da classe parcial MinhaClasseParcial tem acesso a todos os membros definidos em cada parte:

Utilização das classes parciais e boas práticas

As classes parciais são geralmente usadas com códigos gerados por alguma ferramenta, de forma a permitir que o programador injete código dentro dessa classe gerada, sem ter de alterar o arquivo de código gerado.

Usar classes parciais em um código não gerado, faz com que o código fique confuso.

Um dos princípios SOLID , o princípio SRP,  reza que uma mesma classe de não deve ter diversas funções.

Dessa forma, não estaria a utilização do recurso partial class violando esse princípio SOLID, quando usado apenas para esse propósito ?

Use, quando estritamente necessário, e não abuse.

E estamos conversados...

"Portanto, agora nenhuma condenação há para os que estão em Cristo Jesus, que não andam segundo a carne, mas segundo o Espírito."
Romanos 8:1

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti