Para quem estiver interessado, encontrei uma lista muito interessante de features que foram introduzidas no C# aqui. Esta é uma lista muito completa que contém todas as features que vou explicando uma a uma nesta série de posts. Já falámos sobre Generics e Iterators. Agora vamos falar de tipos parciais.
Um tipo parcial é considerado como tal quando a sua definição está espalhada por várias partes em um ou mais ficheiros. Não tem que ser em múltiplos ficheiros, mas poderia. Este é um conceito muito simples que nos traz alguns benefícios. Vamos ver:
Obrigado por lerem, o próximo post será sobre nullable types!
Disclaimer: Por vezes existem termos que eu traduzo nestes posts e outros não. Isto tem a ver com o quão confortável me sinto com cada tradução que faço. Consigo sentir-me confortável o suficiente para dizer tipos parciais, mas não tipos nulos, ou algo similar. Por vezes isto leva a inconsistências, mas qualquer dúvida sobre o conteúdo do post poderá ser respondida!
Um tipo parcial é considerado como tal quando a sua definição está espalhada por várias partes em um ou mais ficheiros. Não tem que ser em múltiplos ficheiros, mas poderia. Este é um conceito muito simples que nos traz alguns benefícios. Vamos ver:
- Se um tipo for parcial, múltiplos programadores podem trabalhar em cada uma das partes. Isto permite-nos uma forma mais organizada de trabalhar, e pode acelerar a produção.
- Em Winforms, por exemplo, é gerada uma classe parcial para cada Form para que o programador possa separar a lógica. Desta forma, uma parte contém informação acerca do design e a outra parte contém a lógica do Form. A parte do design é manipulada pela framework, e por isso é várias vezes sobrescrita. Este é um padrão bastante utilizado pelo .Net. O Entity Framework utliza isto também nos seus templates T4. Por defeito são criadas classes parciais para cada entidade e depois podemos criar mais partes de cada uma das entidades evitando assim perder as nossas alterações a cada classe, quando os templates gerarem de novo a definição.
- Não existe nenhuma penalização em termos de performance por utilizarmos tipos parciais, porque todas as partes serão unificadas após compilação. Esta feature é apenas para conveniência do programador.
Abaixo estão listadas algumas inconveniências de utilizar tipos parciais:
- Um tipo parcial geralmente tem a sua lógica ou definição espalhadas pelas suas partes, por isso pode dificultar a parte do código que queremos (este é um argumento fraco, porque as IDE's de hoje tornam a pesquisa fácil)
- Quando utilizamos tipos parciais, por vezes pode tornar-se complicado perceber todos os atributos que os seus membros têm, ou quais as interfaces que um tipo implementa (o mesmo que antes, as IDE's são poderosas o suficiente para ultrapassar este problema.
Um tipo parcial é sempre a soma dos seus atributos, interfaces implementadas, generic parameters, documentação, etc. Vamos ver um exemplo:
Isto é equivalente a:
Para usar um tipo parcial, tenham em conta que as declarações das partes têm que estar no mesmo namespace.Obrigado por lerem, o próximo post será sobre nullable types!
Disclaimer: Por vezes existem termos que eu traduzo nestes posts e outros não. Isto tem a ver com o quão confortável me sinto com cada tradução que faço. Consigo sentir-me confortável o suficiente para dizer tipos parciais, mas não tipos nulos, ou algo similar. Por vezes isto leva a inconsistências, mas qualquer dúvida sobre o conteúdo do post poderá ser respondida!
Comments
Post a Comment