53 - Quais as duas grandes famílias de tipos no C#, e quais as principais diferenças entre elas? Existe ainda uma terceira família, muito menos usada. Indica qual é.
As duas grandes famílias de tipos no C# são tipos de referência e valor.
As diferenças entre estes tipos são notadas a partir do local onde são alocados na memória, isto é, os tipos de referência armazenam-se num local chamado heap e tipos de valor armazenam-se num local chamado stack.
Alguns tipos de dados referência são: strings e arrays, estes contém referências para o seu conteúdo na heap e a sua gestão de memória é feita automáticamente pelo garbage collector.
Alguns tipos de valor são: int, bool, char, double, byte, float, etc, sendo estes armazenados na stack, têm os seus conteúdos armazenados onde a variável está, onde é declarada, dentro de métodos, blocos for, etc.
A terceira família de tipos no C# muito menos usada é o tipo apontador, este, acede à heap, sem gestão automática da memória e aponta para o endereço de memória de outro tipo.
Por João Rebelo