quarta-feira, 7 de novembro de 2012

User-defined types


User-defined types são as famosas Structs, como structs são value-types, tem a vantagem de serem armazenadas no stack da memoria, e trabalham como uma classe, inclusive para fazer uma struct se transformar em uma classe, basta trocar a Keyword struct por class.


Uma struct deve ser criada ao inves de uma classe, quando:


  • Lógicamente possa ser representada por um valor simples
  • Sua instancia seja menor do que 16 bytes
  • Que ela não vá receber alterações
  • Que não vai ser convertida em um reference-type


Exemplos


Pontos Cartesianos XY, precisam apenas de 2 variaveis para armazenar seus valores, pois é um conceito fixo, que não vai sofrer alterações por causa de regras de negócio.


Entendimento

Quando a necessidade de se criar objetos simples, e imutáveis, que vão precisar de menos de 16bytes para serem representados, ou seja suas propriedades somadas, não somem 16bytes, as structs são mais indicadas, pois ficam armazenadas no stack e assim possuem acesso mais rápido aumentando o seu desempenho.


No caso dos pontos cartesianos, a não ser que seja escolhido o tipo Decimal para representar os pontos, como só é necessário os pontos X e Y (2 variaveis)

se for escolhido Int ou float , a classe ocuparia 8 bytes (4 para cada variavel), se for escolhido long ou double, a classe ocuparia 16 bytes (8 para cada variavel) porém caso a precisão seja em Decimal ai ocuparia 32 bytes, pois cada decimal consome 16bytes

Nenhum comentário:

Postar um comentário