サンプルプログラムがあり、特定の順序で3つのメソッドを実行する必要があります。そして、各メソッドを実行した後、エラー処理を行う必要があります。今、私はこれを通常の方法で行いましたが、このようなデリゲートを使用していません。
クラスProgram{publicstatic void 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ループがあり、すべて同じことを行っているため、見苦しいように見えます...したがって、デリゲートを使用してこのコードをリファクタリングし、TryCatchをすべて1つのメソッドにまとめることができるようにすることにしました。きちんと見えるように。私はオンラインでいくつかの例を見ていましたが、これにActionまたはFuncのデリゲートを使用する必要があるかどうかを理解できませんでした。どちらも似ているように見えますが、これを実装する方法を明確に理解することはできません。どんな助けでもgr8lyに感謝します。私は.NET4.0を使用しているので、これにも匿名メソッドnラムダ式を使用できます
ありがとう