Sexta .NET – Aula 11 – ASP.NET e C# – Parte II

Boa tarde Pessoal,

Primeiramente gostaria de justificar o fato de estarmos publicando com atraso a aula, esta semana estávamos em finalização e aprovação de dois projetos, o que fez que ficassemos totalmente focados na entrega das demandas e tivessemos que abrir mão das aulas.

Para tirar o atraso, aqui vamos com a continuação da última aula.

Sexta .NET – Aula 11 – ASP.NET e C# – Parte II

Nesta aula abordaremos:
Partial Types

Aqui vamos então:

  • Recurso da versão 2.0
  • Permite dividir a implementação de um determinado tipo em diversos arquivos.
  • Disponível para classes, estruturas e interfaces.
  • Definidos pela palavra-chave partial.

Quando podem ser utilizados:
Quando trabalhamos com código gerado automaticamente, código pode ser adicionado à classe sem ter que recriar o arquivo fonte.
Partial Types permitem que dois ou mais desenvolvedores trabalhem no mesmo tipo, enquanto ambos têm seus arquivos checados para edição, sem interferir um no outro.

Declarando uma classe parcial

ClienteP1.cs

public partial class Cliente
{
public int codigo;
public bool EClienteEspecial() { … }
}

ClienteP2.cs

public partial class Cliente
{
int produtosAdquiridos;
public int ProdutosAdquiridos {
get { … }
set { … }
}
}

Declarando uma classe parcial agrupada em uma classe

ClienteP1.cs

public partial class Cliente {
int produtosAdquiridos;
public partial class ClientesEspeciais {
static List lista = new List();
}
}

ClienteP2.cs

public partial class Cliente {
public partial class ClientesEspeciais {
public void Adiciona(Cliente c) {
if (c.EClienteEspecial)
ClientesEspeciais.lista.Add(c);
}
}
}

As partes de uma classe não podem definir aspectos contraditórios.
Uma classe (ou estrutura) pode ter dois tipos de aspectos ou qualidades: acumulativa e não-acumulativa.
Os aspectos acumulativos são aspectos que cada parte do tipo parcial pode escolher adicionar, como derivação de interfaces, propriedades, índices, métodos e variáveis.
Os aspectos não-acumulativos são aspectos que todas as partes do tipo parcial devem possuir.

Classes Acumulativas

public partial class Computador {} // CompP1.cs
public partial class Computador : IProduto {// CompP2.cs
public void Adiciona() {...}
public void Remove() {...}
}

Classes Não-Acumulativas

public class Pessoa {}
public class Funcionario {}
public partial class Vendedor : Pessoa {} // VendedorP1.cs
public partial class Vendedor : Pessoa {} // VendedorP2.cs
//Não compila
public partial class Vendedor : Funcionario {}

Todas as partes devem ter a mesma acessibilidade.
Além de todas as partes definirem as mesmas partes não-acumulativas, apenas uma parte pode fazer o override de um método virtual ou abstract, e apenas uma parte pode implementar uma mesma interface.
Ao usar Partial Types, é recomendável indicar no nome do arquivo que este contém partes de um tipo. Como por exemplo: MinhaClasseP1.cs, MinhaClasseP2.cs

Bom pessoal, esta aula fica por aqui, já acompanhem a sequencia com a tal aula perdida, englobando Nullable Types

Até lá!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *