我看到了类似问题的stackoverflow上的一些解决方案,但看起来像每个问题是唯一的。代表'System.Func <int,int,string>'不带1个参数
我想实现全球try/catch而不是写每个方法try/catch,但我坚持这个错误。对于一个参数来说,它工作得很好,而对于采用多个参数的方法则不起作用。
class Program
{
static void Main(string[] args)
{
int i = 5;
int j = 10;
string s1 = GlobalTryCatch(x => square(i), i);
string s2 = GlobalTryCatch(x => Sum(i,j), i, j); // error here..
Console.Read();
}
private static string square(int i)
{
Console.WriteLine(i * i);
return "1";
}
private static string Sum(int i, int j)
{
Console.WriteLine(i+j);
return "1";
}
private static string GlobalTryCatch<T1>(Func<T1, string> action, T1 i)
{
try
{
action.Invoke(i);
return "success";
}
catch (Exception e)
{
return "failure";
}
}
private static string GlobalTryCatch<T1, T2>(Func<T1, T2, string> action, T1 i, T2 j)
{
try
{
action.Invoke(i, j);
return "success";
}
catch (Exception e)
{
return "failure";
}
}
}
'我被这个错误卡住了'是什么错误? –
这是给编译器错误“委托'System.Func'不带1个参数” –
“我试图实现全球try/catch而不是写每个方法try/catch”。这些都没有任何意义。第一种对于除伐木以外的任何事物都是毫无意义的,因为它太笼统,无法处理发生了什么问题。后者太宽,因为大多数呼叫不应该丢掉,而许多呼叫可以通过轮流给呼叫者来处理。 –