Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace MeyerExtensions.Types
- {
- public sealed class Optional<T>
- {
- public bool IsNone { get; private set; } = false;
- public T Value { get; } = default;
- public Optional(T value)
- {
- this.Value = value;
- this.IsNone = value == null;
- }
- public static Optional<T> Some(T value) => new Optional<T>(value);
- public static Optional<T> None() => new Optional<T>(default(T)) { IsNone = true };
- public static implicit operator Optional<T>(T value) => Some(value);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement