public static IOptionMonad <T> If <T>(IOptionMonad <T> thenSource, IOptionMonad <T> elseSource, Func <bool> selector) { return(new IfElseStaticCore <T>(thenSource, elseSource, selector)); }
public IfStaticCore(IOptionMonad <T> thenSource, Func <bool> selector) { _thenSource = thenSource; _selector = selector; }
public static IOptionMonad <TResult> Select <T, TResult>(this IOptionMonad <T> self, Func <T, TResult> selector) { return(new SelectCore <T, TResult>(self, selector)); }
public SelectCore(IOptionMonad <T> self, Func <T, TResult> selector) { _self = self; _selector = selector; }
public static IOptionMonad <T> DoOnNone <T>(this IOptionMonad <T> self, Action action) { return(new DoOnNoneCore <T>(self, action)); }
public DoOnNoneCore(IOptionMonad <T> self, Action action) { _self = self; _action = action; }
public static IOptionMonad <T> Catch <T>(this IOptionMonad <T> self, Func <IOptionMonad <T> > selector) { return(new CatchCore <T>(self, selector)); }
public CatchCore(IOptionMonad <T> self, Func <IOptionMonad <T> > selector) { _self = self; _selector = selector; }
public ZipCore(IOptionMonad <TFirst> self, IOptionMonad <TSecond> second, Func <TFirst, TSecond, TResult> resultSelector) { _self = self; _second = second; _resultSelector = resultSelector; }
public static IOptionMonad <TResult> Zip <TFirst, TSecond, TResult>(this IOptionMonad <TFirst> self, IOptionMonad <TSecond> second, Func <TFirst, TSecond, TResult> resultSelector) { return(new ZipCore <TFirst, TSecond, TResult>(self, second, resultSelector)); }
public DoCore(IOptionMonad <T> self, Action <IOptionResult <T> > action) { _self = self; _action = action; }
public static IOptionMonad <T> Do <T>(this IOptionMonad <T> self, Action <IOptionResult <T> > action) { return(new DoCore <T>(self, action)); }
public DoOnValueCore(IOptionMonad <T> self, Action <T> action) { _self = self; _action = action; }
public ShareCore(IOptionMonad <T> self) { _self = self; _lazy = Lazy.Create <IOptionResult <T> >(RunSelf); }
public static IOptionMonad <T> Share <T>(this IOptionMonad <T> self) { return(new ShareCore <T>(self)); }