Somente para complementar, ao invés de comentarmos a linha _itens[_proximaPosicao] = null
, podemos utilizar o operador default, por exemplo _itens[_proximaPosicao] = default(T)
. Fiz um outro exemplo simples para poderem avaliar seu funcionamento
public class Variavel<T>
{
public T Valor { get; set; }
public void UsarPadrao()
{
Valor = default(T); // ou simplesmente default a partir de C# 7.1
}
public override string ToString()
{
return Valor == null ? "null" : Valor.ToString();
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("> Teste com tipo de valor");
Variavel<int> meuInt = new Variavel<int>() { Valor = 50 };
Console.WriteLine($"Valor definido: {meuInt}");
meuInt.UsarPadrao();
Console.WriteLine($"Valor padrão: {meuInt}");
Console.WriteLine("\n> Teste com tipo de referência");
Variavel<String> meuString = new Variavel<string>() { Valor = "Tesde do operador default" };
Console.WriteLine($"Valor definido: {meuString}");
meuString.UsarPadrao();
Console.WriteLine($"Valor padrão: {meuString}");
}
}
O resultado é:
> Teste com tipo de valor
Valor definido: 50
Valor padrão: 0
> Teste com tipo de referência
Valor definido: Tesde do operador default
Valor padrão: null
Neste link tem uma lista com os valores padrões.