Represents a result of operation which can be actual result or error code.
Namespace: DotNext Assembly: DotNext.dll Syntaxpublic readonly struct Result<T, TError> : IResultMonad<T, TError, Result<T, TError>>, IResultMonad<T, TError>, IOptionMonad<T, Result<T, TError>>, IOptionMonad<T>, ISupplier<object?>, IFunctional<Func<object?>> where TError : struct, Enum
Type Parameters Name Description T
The type of the result.
TErrorThe type of the error code. Default value must represent the successful result.
Constructors | Edit this page View Source Result(T)Initializes a new successful result.
Declaration Parameters Type Name Description T valueThe result value.
| Edit this page View Source Result(TError)Initializes a new unsuccessful result.
Declarationpublic Result(TError error)
Parameters Type Name Description TError error
The error code.
Exceptions Properties | Edit this page View Source ErrorGets the error code.
Declarationpublic TError Error { get; }
Property Value | Edit this page View Source IsSuccessful
Indicates that the result is successful.
Declarationpublic bool IsSuccessful { get; }
Property Value Type Description bool
true if this result is successful; false if this result represents exception.
| Edit this page View Source ValueExtracts the actual result.
Declaration Property Value Exceptions | Edit this page View Source ValueOrDefaultReturns the value if present; otherwise return default value.
Declarationpublic T? ValueOrDefault { get; }
Property Value Type Description T
The value, if present, otherwise default
.
Gets a reference to the underlying value.
Declaration[JsonIgnore]
public ref readonly T ValueRef { get; }
Property Value Type Description T
The reference to the result.
Exceptions Methods | Edit this page View Source Box()Gets boxed representation of the result.
Declarationpublic Result<object?, TError> Box()
Returns Type Description Result<object, TError>
The boxed representation of the result.
| Edit this page View Source Convert<TResult>(delegate*<T, TResult>)If the successful result is present, apply the provided mapping function hiding any exception caused by the converter.
Declaration[CLSCompliant(false)]
public Result<TResult, TError> Convert<TResult>(delegate*<T, TResult> converter)
Parameters Type Name Description delegate*<T, TResult> converter
A mapping function to be applied to the value, if present.
Returns Type Description Result<TResult, TError>The conversion result.
Type Parameters Name Description TResultThe type of the mapping function result.
| Edit this page View Source Convert<TResult>(Converter<T, TResult>)If the successful result is present, apply the provided mapping function hiding any exception caused by the converter.
Declarationpublic Result<TResult, TError> Convert<TResult>(Converter<T, TResult> converter)
Parameters Type Name Description Converter<T, TResult> converter
A mapping function to be applied to the value, if present.
Returns Type Description Result<TResult, TError>The conversion result.
Type Parameters Name Description TResultThe type of the mapping function result.
| Edit this page View Source Or(T?)Returns the value if present; otherwise return default value.
Declarationpublic T? Or(T? defaultValue)
Parameters Type Name Description T defaultValue
The value to be returned if this result is unsuccessful.
Returns Type Description TThe value, if present, otherwise defaultValue
.
Returns the value if present; otherwise invoke delegate.
Declaration[CLSCompliant(false)]
public T OrInvoke(delegate*<TError, T> defaultFunc)
Parameters Type Name Description delegate*<TError, T> defaultFunc
A delegate to be invoked if value is not present.
Returns Type Description TThe value, if present, otherwise returned from delegate.
| Edit this page View Source OrInvoke(delegate*<TError, T>)Returns the value if present; otherwise invoke delegate.
Declaration[CLSCompliant(false)]
public T OrInvoke(delegate*<TError, T> defaultFunc)
Parameters Type Name Description delegate*<TError, T> defaultFunc
A delegate to be invoked if value is not present.
Returns Type Description TThe value, if present, otherwise returned from delegate.
| Edit this page View Source OrInvoke(Func<T>)Returns the value if present; otherwise invoke delegate.
Declarationpublic T OrInvoke(Func<T> defaultFunc)
Parameters Type Name Description Func<T> defaultFunc
A delegate to be invoked if value is not present.
Returns Type Description TThe value, if present, otherwise returned from delegate.
| Edit this page View Source OrInvoke(Func<TError, T>)Returns the value if present; otherwise invoke delegate.
Declarationpublic T OrInvoke(Func<TError, T> defaultFunc)
Parameters Type Name Description Func<TError, T> defaultFunc
A delegate to be invoked if value is not present.
Returns Type Description TThe value, if present, otherwise returned from delegate.
| Edit this page View Source OrThrow(delegate*<TError, Exception>)Gets underlying value or throws an exception.
Declaration[CLSCompliant(false)]
public T OrThrow(delegate*<TError, Exception> exceptionFactory)
Parameters Type Name Description delegate*<TError, Exception> exceptionFactory
The exception factory that accepts the error code.
Returns Type Description TThe underlying value.
Exceptions Type Condition ExceptionThe result is unsuccessful.
| Edit this page View Source OrThrow(Func<TError, Exception>)Gets underlying value or throws an exception.
Declarationpublic T OrThrow(Func<TError, Exception> exceptionFactory)
Parameters Type Name Description Func<TError, Exception> exceptionFactory
The exception factory that accepts the error code.
Returns Type Description TThe underlying value.
Exceptions Type Condition ExceptionThe result is unsuccessful.
| Edit this page View Source ToResult()Converts this result into Result<T>.
Declarationpublic Result<T> ToResult()
Returns Type Description Result<T>
The converted result.
| Edit this page View Source ToString()Returns textual representation of this object.
Declarationpublic override string? ToString()
Returns Type Description string
The textual representation of this object.
Overrides | Edit this page View Source TryGet()Converts the result into Optional<T>.
Declarationpublic Optional<T> TryGet()
Returns Type Description Optional<T>
Option monad representing value in this monad.
| Edit this page View Source TryGet(out T)Attempts to extract value from the container if it is present.
Declarationpublic bool TryGet(out T value)
Parameters Type Name Description T value
Extracted value.
Returns Type Description booltrue if value is present; otherwise, false.
Operators | Edit this page View Source operator &(in Result<T, TError>, in Result<T, TError>)Indicates that both results are successful.
Declarationpublic static bool operator &(in Result<T, TError> left, in Result<T, TError> right)
Parameters Type Name Description Result<T, TError> left
The first result to check.
Result<T, TError> rightThe second result to check.
Returns Type Description booltrue if both results are successful; otherwise, false.
| Edit this page View Source operator |(in Result<T, TError>, in Result<T, TError>)Tries to return successful result.
Declarationpublic static Result<T, TError> operator |(in Result<T, TError> x, in Result<T, TError> y)
Parameters Type Name Description Result<T, TError> x
The first container.
Result<T, TError> yThe second container.
Returns Type Description Result<T, TError>The first successful result.
| Edit this page View Source operator |(in Result<T, TError>, T?)Returns the value if present; otherwise return default value.
Declarationpublic static T? operator |(in Result<T, TError> result, T? defaultValue)
Parameters Type Name Description Result<T, TError> result
The result to check.
T defaultValueThe value to be returned if this result is unsuccessful.
Returns Type Description TThe value, if present, otherwise defaultValue
.
Extracts actual result.
Declarationpublic static explicit operator T(in Result<T, TError> result)
Parameters Type Name Description Result<T, TError> result
The result object.
Returns | Edit this page View Source operator false(in Result<T, TError>)Checks whether the container has no value.
Declarationpublic static bool operator false(in Result<T, TError> result)
Parameters Type Name Description Result<T, TError> result Returns Type Description bool
true if this container has no value; otherwise, false.
| Edit this page View Source implicit operator Optional<T>(in Result<T, TError>)Converts the result into Optional<T>.
Declarationpublic static implicit operator Optional<T>(in Result<T, TError> result)
Parameters Type Name Description Result<T, TError> result
The result to be converted.
Returns Type Description Optional<T>Option monad representing value in this monad.
| Edit this page View Source implicit operator Result<T>(in Result<T, TError>)Converts the result into Result<T>.
Declarationpublic static implicit operator Result<T>(in Result<T, TError> result)
Parameters Type Name Description Result<T, TError> result
The result to be converted.
Returns Type Description Result<T>The converted result.
| Edit this page View Source implicit operator Result<T, TError>(T)Converts value into the result.
Declarationpublic static implicit operator Result<T, TError>(T result)
Parameters Type Name Description T result
The result to be converted.
Returns Type Description Result<T, TError>The result representing result
value.
Checks whether the container has no value.
Declarationpublic static bool operator !(in Result<T, TError> result)
Parameters Type Name Description Result<T, TError> result Returns Type Description bool
true if this container has no value; otherwise, false.
| Edit this page View Source operator true(in Result<T, TError>)Checks whether the container has value.
Declarationpublic static bool operator true(in Result<T, TError> result)
Parameters Type Name Description Result<T, TError> result Returns Type Description bool
true if this container has value; otherwise, false.
Implements Extension MethodsRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4