首页 > 解决方案 > C# 创建泛型函数列表

问题描述

我想创建一个可以接受任何类型的类变量的函数列表。像这样的东西。但我不知道我怎么能做到这一点。

  1. 这是声明将接受类变量的泛型函数的正确方法吗?
  2. 如何添加通用函数以返回列表?我在下面尝试过,但这也无济于事

public List<MyFunction<T>> GetMyFunctionList<T>() where T : struct, TextFragment


public class MyFunction<T>
{
    public MyFunction(Func<T, string> functionName)
    {
        this.FunctionName = functionName;
    }

    public Func<T, string> FunctionName { get; set; }
}

public class MyClass
{
    int var1;
    Bar var2;
    
    public MyClass (int var1, Bar var2)
    {
        this.var1 = var1;
        this.var2 = var2;
    }
    
    public List<MyFunction> getMyFunctionList(){
        return new List<MyFunction> // throws error - "using generic type returns one type argument
        {
            this.Foo1(var1),
            this.Foo2(var2)
        }
    }
    
    public MyFunction<int> Foo1(int var1)
    {
        return new MyFunction((i) => {
            int res =  var1*2; 
            return res.ToString()
        })
    }
    
    public MyFunction<Bar> Foo2(Bar var2)
    {
        return new MyFunction((i) => {
            return var2.ToString() + " value"; 
        })
    }       
}

标签: c#.netfunc

解决方案


推荐阅读