簡単にしたいコードは次のとおりです。
public void Method1(Context context, EventLog log = null)
{
Class myClass = ConvertToMyClass();
ApiCall1 apiCall = new ApiCall1(context);
if (log != null)
{
eventLog.WriteEntry("Starting");
}
try
{
apiCall.Call1(myClass, null, false);
IsCallSuccess = true;
}
catch (Exception e)
{
if (log != null)
{
eventLog.WriteEntry("error");
}
IsCallSuccess= false;
CallErrorMessage = e.Message;
}
}
public void Method2(Context context, EventLog log = null)
{
Class myClass = ConvertToMyClass();
ApiCall2 apiCall = new ApiCall2(context);
if (log != null)
{
eventLog.WriteEntry("Starting");
}
try
{
apiCall.Call1(myClass);
NewItemID = myClass.ItemID;
IsCallSuccess = true;
}
catch (Exception e)
{
if (log != null)
{
eventLog.WriteEntry("error");
}
IsCallSuccess= false;
CallErrorMessage = e.Message;
}
}
public void Method3Context context, EventLog log = null)
{
Class myClass = ConvertToMyClass();
ApiCall3 apiCall = new ApiCall3(context);
if (log != null)
{
eventLog.WriteEntry("Starting");
}
try
{
apiCall.Call3(myClass, "param1");
UpdatedItemID = myClass.UpdatedItemID;
IsCallSuccess = true;
}
catch (Exception e)
{
if (log != null)
{
eventLog.WriteEntry("error");
}
IsCallSuccess= false;
CallErrorMessage = e.Message;
}
}
3つの方法があります。デリゲートまたはラムダを使用してそれらを単純化する方法を考えていましたが、何も見つかりませんでした。
あなたの考え?