我有一个示例程序,它需要按特定顺序执行 3 个方法。并且在执行每个方法之后,都应该做错误处理。现在我以正常的方式做到了这一点,没有使用这样的代表。
类程序 { 公共静态无效 Main() {
MyTest();
}
private static bool MyTest()
{
bool result = true;
int m = 2;
int temp = 0;
try
{
temp = Function1(m);
}
catch (Exception e)
{
Console.WriteLine("Caught exception for function1" + e.Message);
result = false;
}
try
{
Function2(temp);
}
catch (Exception e)
{
Console.WriteLine("Caught exception for function2" + e.Message);
result = false;
}
try
{
Function3(temp);
}
catch (Exception e)
{
Console.WriteLine("Caught exception for function3" + e.Message);
result = false;
}
return result;
}
public static int Function1(int x)
{
Console.WriteLine("Sum is calculated");
return x + x;
}
public static int Function2(int x)
{
Console.WriteLine("Difference is calculated ");
return (x - x);
}
public static int Function3(int x)
{
return x * x;
}
}
正如你所看到的,这段代码看起来很难看,有这么多的 try catch 循环,它们都在做同样的事情......所以我决定我可以使用委托来重构这段代码,以便可以将 Try Catch 全部推到一个方法中使它看起来整洁。我正在网上查看一些示例,但无法确定我是否应该为此使用 Action 或 Func 代表。两者看起来相似,但我无法清楚地知道如何实现这一点。非常感谢任何帮助。我正在使用 .NET 4.0,因此我也允许为此使用匿名方法 n lambda 表达式
谢谢