0

我有一个通用方法,它有几个参数和一个返回类型:

    public static class Support
{
    public static TR JSONKeyName<TR, T1, T2, T3>(this IEnumerable<Tuple<T1, T2>> a, Action<T3> b)
    {
        TR result = default(TR);

        try
        {
            foreach (var entry in a)
            {
                b((T3)TypeDescriptor.GetConverter(typeof(T3)).ConvertFromInvariantString("[ \"" + entry.Item1 + "\", " + entry.Item2 + "\" ]"));
            }

            result = (TR)Convert.ChangeType(true, typeof(TR));
        }
        catch
        {
            result = (TR)Convert.ChangeType(false, typeof(TR));
        }

        return result;
    }
}       


List<Tuple<int, string>> list = new List<Tuple<int, string>>();
list.Add(new Tuple<int, string>(1, "Test 1"));
list.Add(new Tuple<int, string>(2, "Test 2"));
list.Add(new Tuple<int, string>(3, "Test 3"));

var res = list.JSONKeyName<bool>((string entry) =>
    {


    });

从上面的示例调用 JSONKeyName 时,出现以下错误:

编译器错误是:

*使用泛型方法需要 4 个类型参数

4

1 回答 1

2

呃,你已经注意到它需要多个参数,而你显然只传递了一个 - boollist.JSONKeyName<bool, int, string, string>根据上下文将其更改为 。

于 2013-03-07T05:34:40.947 回答