Novidades do .NET 2.0: Classes Partial


No .NET 2.0, foi introduzido o conceito de classes parciais (partial). Isso significa que a definição de uma classe pode ser dividida em vários arquivos distintos. Esta característica pode ser útil em projetos grandes, onde vários desenvolvedores trabalham sobre a mesma classe, ou então na alteração de código gerado automaticamente - por exemplo, nos proxys gerados para acesso a Web Services - pois assim o código pode ser gerado novamente e não se tem que fazer as alterações outra vez, já que as customizações estarão em outro arquivo. Isso sem falar que todo novo modelo de código do ASP.NET 2.0 utiliza classes partial.

Referências:

Create Elegant Code with Anonymous Methods, Iterators, and Partial Classes
Partial Class Definitions

Ricardo Oneda

Comments (7) -

  • Fabio Camara

    11/2/2005 10:44:22 AM | Reply

    Oneda,
    Sua colocação procede, contudo tenho a impressão que a principal finalidade do partial types não foi comentada. A separação dos objetos de construção do form agora estão separados, como o Delphi sempre teve (ver arquivos .dfm), o que torna seu texto de código mais limpo e fácil de manusear.
    Espero estar contribuindo,
    Fabio Camara

  • Ricardo Oneda

    11/2/2005 6:04:06 PM | Reply

    Juliano, bem lembrado. Até tinha me esquecido que havia feito um comentário no seu post Smile

    Fábio, a legibilidade do código também é outra característica, mas não acho que seja a principal finalidade. De qualquer forma, fica registrada sua opinião.

    Todos comentários que visam esclarecer e acrescentar são
    bem-vindos. Continuem comentando!

  • Juliano Nunes

    11/3/2005 11:16:41 PM | Reply

    Só uma dúvida Ricardo e/ou Fabio, e se você tiver algum código em uma Partial Class que tem uma certa prioridade de ser executado, ou seja, deve ser executado antes que a outra parte da classe, como isso é especificado, se é que isso é possível.

  • Ricardo Oneda

    11/3/2005 11:55:08 PM | Reply

    Juliano, classes não deveriam possuir "códigos soltos". Devem existir métodos que podem ser chamados. Portanto, não vejo uma aplicação para essa situação. Você tem algo parecido? Pode dar um exemplo?

  • Juliano Nunes

    11/4/2005 12:04:34 AM | Reply

    Concordo com você que não deveria...só levantei esta questão pois é algo "abstrato", mas o que seria mais fácil de dar problemas é na criação e alteração nos valores de variáveis, mas ao compilar, o Framework deve organizar tudo em blocos...não sei se é realmente assim.

  • Ricardo Oneda

    11/4/2005 9:27:20 PM | Reply

    Juliano,

    veja o que está escrito em um dos links que indiquei:

    C# 2.0 supports partial types as follows: when the compiler builds the assembly, it combines from the various files the parts of a type and compiles them into a single type in Microsoft intermediate language (MSIL). The generated MSIL has no recollection which part came from which file. Just like in C# 1.1 the MSIL has no record of which file was used to define which type. Also worth noting is that partial types cannot span assemblies, and that a type can refuse to have other parts by omitting the partial qualifier from its definition.

Loading