public void NullableTypesPerformCorrectly() { Nullable <int> nullint = null; Nullable <int> nonnullint = 42; Nullable <int> zeroint = 0; Assert.Equal(Option <int> .None(), nullint.ToOption()); Assert.Equal(nonnullint, nonnullint.Value.ToOption().GetValue(x => x)); Assert.Equal(zeroint, zeroint.Value.ToOption().GetValue(x => x)); }
public static Option <T> OrElse <T>(this Option <T> option, Nullable <T> alternative) where T : struct { return(option.HasValue ? option : alternative.ToOption()); }