Algo bastante interessante que está disponível na versão 2.0 do C# é a keyword default. Ela é utilizada em classes genéricas para inicializar um tipo qualquer, ou seja, como em C# temos obrigatoriamente que definir um valor default para qualquer tipo, esta vem para suprir esta necessidade.
Em casos de Reference Type, é retornado um valor nulo. Já em casos de valores numéricos, 0 é retornado. Quando o tipo é uma estrutura, é retornado para cada membro desta, 0 ou nulo, dependendo do tipo de cada um. Abaixo um exemplo do uso desta funcionalidade:
public class Lista <T> where T : IComparable{
public void Add(T item){
T temp = default(T);
// ….
}
}