我有一个泛型方法,它有几个参数和一个返回类型:
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个类型参数
答案 0 :(得分:2)
呃,你注意到它需要多个参数,你显然只传递了一个 - bool
。根据上下文将其更改为list.JSONKeyName<bool, int, string, string>
。