Método com tipo de retorno genérico, mas não entrada genérica. Isso é possível?

Suponha que tenhamos umNodeData classe:

public class NodeData<T>
{
    public string Name;
    public T Value;
    public NodeData(string name, T value)
    {
        this.Name = name;
        this.Value = value;
    }
}

E uma baseNode classe e classes filho que possuem várias propriedades com o tipoNodaData:

public class Node
{
    public List<NodeData<T>> listOutputs<T>()
    {
        var fieldInfos = GetType().GetFields();
        var list = new List<NodeData<T>>();
        foreach (var item in fieldInfos)
        {
            Type t = item.FieldType;
            string name = item.Name;
            if (t == typeof(NodeData<T>))
            {
                var output = new NodeData<T>(name, default(T));
                list.Add(output);
            }
        }
        return list;
    }
}

public class TestNode : Node {
    public NodeData<int> data;
    public NodeData<double> data2;
    public NodeData<double> data3;
    public TestNode ()
    {
        data = new NodeData<int>("test", 111);
        data2 = new NodeData<double>("test", 113);
    }
}

Como você pode ver, existe um método que lista todas as saídas com o tipoT noNode class Para que eu possa encontrar quais são os campos de saída da classe filho em tempo de execução:

TestNode node = new TestNode ();
var list = node.listOutputs<int>(); // this returns data

Mas preciso saber como usar esse método para listar todos os NodeOutputs de qualquer tipo T. Neste exemploint edouble. Preciso adicionar um método com esta assinaturapublic List<NodeData<T>> listOutputs() // should return all properties data, data2, data3. É possível ter um método como este? O tipo de retorno é genérico, mas não há argumento de tipo para o método

questionAnswers(3)

yourAnswerToTheQuestion