1
resposta

Utilização de valores padrões com classes genéricas

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.

1 resposta

Olá Mateus, tudo certo?

Essa é uma ótima ideia!

Muito obrigado pela colaboraçaõ, continue com o foco e bons estudos!