Maybe<TValue>
Namespace: Bogoware.Monads
Represents an optional value.
public struct Maybe<TValue>
Type Parameters
TValue
Inheritance Object → ValueType → Maybe<TValue>
Implements IMaybe<TValue>, IMaybe, IEquatable<Maybe<TValue>>, IEnumerable<TValue>, IEnumerable
Attributes NullableContextAttribute, NullableAttribute, IsReadOnlyAttribute
Fields
None
Returns the singleton instance of Maybe<TValue> representing the none state.
public static Maybe<TValue> None;
Properties
IsSome
Is true if the maybe is some, otherwise false.
public bool IsSome { get; }
Property Value
IsNone
Is true if the maybe is none, otherwise false.
public bool IsNone { get; }
Property Value
Value
Gets the value if the maybe is some, otherwise the default.
public TValue Value { get; }
Property Value
TValue
Constructors
Maybe(TValue)
Initializes a new instance of the Maybe<TValue>.
Maybe(TValue value)
Parameters
value TValue
Maybe(Maybe<TValue>)
Initializes a new instance of the Maybe<TValue>.
Maybe(Maybe<TValue> maybe)
Parameters
maybe Maybe<TValue>
Methods
GetValueOrThrow()
Returns the value if the maybe is some, otherwise throws an exception.
TValue GetValueOrThrow()
Returns
TValue
Exceptions
Map<TNewValue>(Func<TValue, TNewValue>)
Map the value to a new one.
Maybe<TNewValue> Map<TNewValue>(Func<TValue, TNewValue> map)
Type Parameters
TNewValue
Parameters
map Func<TValue, TNewValue>
Returns
Maybe<TNewValue>
Map<TNewValue>(Func<TValue, Task<TNewValue>>)
Task<Maybe<TNewValue>> Map<TNewValue>(Func<TValue, Task<TNewValue>> map)
Type Parameters
TNewValue
Parameters
map Func<TValue, Task<TNewValue>>
Returns
Task<Maybe<TNewValue>>
Bind<TNewValue>(Func<TValue, Maybe<TNewValue>>)
Bind the maybe and, possibly, to a new one.
Maybe<TNewValue> Bind<TNewValue>(Func<TValue, Maybe<TNewValue>> map)
Type Parameters
TNewValue
Parameters
map Func<TValue, Maybe<TNewValue>>
Returns
Maybe<TNewValue>
Bind<TNewValue>(Func<TValue, Task<Maybe<TNewValue>>>)
Task<Maybe<TNewValue>> Bind<TNewValue>(Func<TValue, Task<Maybe<TNewValue>>> map)
Type Parameters
TNewValue
Parameters
map Func<TValue, Task<Maybe<TNewValue>>>
Returns
Task<Maybe<TNewValue>>
Match<TResult>(Func<TValue, TResult>, TResult)
Maps a new value for both state of a Maybe<TValue>
TResult Match<TResult>(Func<TValue, TResult> mapValue, TResult none)
Type Parameters
TResult
Parameters
mapValue Func<TValue, TResult>
none TResult
Returns
TResult
Match<TResult>(Func<TValue, TResult>, Func<TResult>)
TResult Match<TResult>(Func<TValue, TResult> mapValue, Func<TResult> none)
Type Parameters
TResult
Parameters
mapValue Func<TValue, TResult>
none Func<TResult>
Returns
TResult
Match<TResult>(Func<TValue, Task<TResult>>, TResult)
Task<TResult> Match<TResult>(Func<TValue, Task<TResult>> mapValue, TResult none)
Type Parameters
TResult
Parameters
mapValue Func<TValue, Task<TResult>>
none TResult
Returns
Task<TResult>
Match<TResult>(Func<TValue, Task<TResult>>, Func<TResult>)
Task<TResult> Match<TResult>(Func<TValue, Task<TResult>> mapValue, Func<TResult> none)
Type Parameters
TResult
Parameters
mapValue Func<TValue, Task<TResult>>
none Func<TResult>
Returns
Task<TResult>
Match<TResult>(Func<TValue, Task<TResult>>, Func<Task<TResult>>)
Task<TResult> Match<TResult>(Func<TValue, Task<TResult>> mapValue, Func<Task<TResult>> none)
Type Parameters
TResult
Parameters
mapValue Func<TValue, Task<TResult>>
none Func<Task<TResult>>
Returns
Task<TResult>
Match<TResult>(Func<TValue, TResult>, Func<Task<TResult>>)
Task<TResult> Match<TResult>(Func<TValue, TResult> mapValue, Func<Task<TResult>> none)
Type Parameters
TResult
Parameters
mapValue Func<TValue, TResult>
none Func<Task<TResult>>
Returns
Task<TResult>
IfSome(Action<TValue>)
Execute the action if the Maybe<TValue> is Some.
Maybe<TValue> IfSome(Action<TValue> action)
Parameters
action Action<TValue>
Returns
IfSome(Func<TValue, Task>)
Task<Maybe<TValue>> IfSome(Func<TValue, Task> action)
Parameters
action Func<TValue, Task>
Returns
Task<Maybe<TValue>>
GetValue(TValue)
Retrieve the value if present or return the defaultValue if missing.
TValue GetValue(TValue defaultValue)
Parameters
defaultValue TValue
Returns
TValue
GetValue(Func<TValue>)
TValue GetValue(Func<TValue> defaultValue)
Parameters
defaultValue Func<TValue>
Returns
TValue
GetValue(Func<Task<TValue>>)
Task<TValue> GetValue(Func<Task<TValue>> defaultValue)
Parameters
defaultValue Func<Task<TValue>>
Returns
Task<TValue>
OfType<TNewValue>()
Downcast to TNew if possible, otherwise returns a Maybe<TValue>
that is actually None case.
Maybe<TNewValue> OfType<TNewValue>()
Type Parameters
TNewValue
Returns
Maybe<TNewValue>
Equals(Object)
bool Equals(object obj)
Parameters
obj Object
Returns
Equals(Maybe<TValue>)
bool Equals(Maybe<TValue> other)
Parameters
other Maybe<TValue>
Returns
GetHashCode()
int GetHashCode()
Returns
ToString()
string ToString()