Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface IRuner : ISuccess, IError
- {
- void Run(int number);
- }
- public interface ISuccess
- {
- IError OnSuccess(Action onSuccess);
- }
- public interface IError
- {
- IRuner OnError(Action onError);
- }
- public class InfinityMeshRuner : IRuner
- {
- public Action OnSuccessHandler { get; set; }
- public Action OnErrorHandler { get; set; }
- public InfinityMeshRuner()
- {
- }
- public InfinityMeshRuner(InfinityMeshRuner souroce)
- {
- OnSuccessHandler = souroce.OnSuccessHandler;
- OnErrorHandler = souroce.OnErrorHandler;
- }
- public IError OnSuccess(Action onSuccess)
- {
- return new InfinityMeshRuner(this) { OnSuccessHandler = onSuccess};
- }
- public IRuner OnError(Action onError)
- {
- return new InfinityMeshRuner(this) { OnErrorHandler = onError };
- }
- public void Run(int number)
- {
- switch (number % 2)
- {
- case 0:
- OnSuccessHandler();
- break;
- default:
- OnErrorHandler();
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement