委託

彭二狗的牵引绳發表於2024-08-12

class Operation
{
public Action DefaultSuccessCallback { get; set; }

public Action DefaultFailureCallback { get; set; }

public Operation InnerOperation { get; set; }

public object Operate(object input, Action successCallback ,Action failureCallback)
{
if (successCallback == null )
{
successCallback = this.DefaultSuccessCallback;
}


if (failureCallback == null )
{
failureCallback = this.DefaultFailureCallback; ;
}

object result = null;
try
{
result = this.InnerOperation.Operate(input, successCallback, failureCallback);
}
catch (Exception)
{
failureCallback.Invoke();
//throw;
}

successCallback.Invoke();
return result;
}
}

相關文章