Tag Archives: .NETFW

I Love C# Pure – Atributos

C# : Atributos

Continuando a saga para conhecer os recursos e características do C# (Puro). A linguagem projetada para nos ajudar, simplificar, durante a etapa de codificação de nossos aplicativos. Vamos lá:

Hoje o C# apresenta a um recurso legal, os Atributos. Uma característica bastante comum em muitas linguagens. Veja o que é, como funciona, seu comportamento, diferenças, etc….

O que é?

Atributos são elementos do .NETFW com a responsabilidade de prover metadados para o indiano(compilador) e configurar o comportamento do código em situações específicas.

Eles são declarados em classes, métodos, propriedades e campos.

Principais funções

  • Definir permissões exigidas para realizar operações como gravar no disco
  • Controlar a serialização de objetos (XML ou não)
  • Marcar códigos obsoletos

Declaração

Basicamente, a forma mais simples é definir o atributo a ser usado entre [] e definir os valores para o comportamento do código.

…Continua…

Ok! Um pouco sobre as C# PURO.

Generics – Teorias (Reuso)

Ex 1 : Reuse facilmente o código

Entendendo um pouco sobre Generics. Característica importante comparada aos tipos convencionais não Generics.

Um conceito importante para entender esse recurso é a questão de reuso de código. Vamos lá:

Já vimos que, ao implementar tipos byVal com classes collection no generics, temos as operações boxing/unboxing que aumentam a sobrecarga quando tipo byVal for convertido para byRef e vice-versa.

Utilizando classes genéricas, é possível defini-la apenas uma vez e instanciá-la de várias formas. Podemos inclusive, defini-la em uma linguagem .NET e utilizá-la em outra linguagem.

Chega de Teoria!

Instanciando objetos genericos

ClasseGenerica<int> objGen = new ClasseGenerica<int>();
objGen.Adicionar(4);

ClasseGenerica<string> objGen2 = new ClasseGenerica<string>();
objGen2.Adicionar("Developer");

ClasseGenerica<Pessoa> objGenP = new ClasseGenerica<Aluno>();
objGenP.Adicionar(new Pessoa { id = 4, nome = "Aldo" });

Instancio a classe ClasseGenerica<T> com tipo int e string.

Instancio utilizando um tipo definido pelo usuário como uma classe Pessoa.

Pronto! Agora tente realizar isso utilizando uma classe não genérica.