本文整理汇总了C#中Option.OrElse方法的典型用法代码示例。如果您正苦于以下问题:C# Option.OrElse方法的具体用法?C# Option.OrElse怎么用?C# Option.OrElse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Option
的用法示例。
在下文中一共展示了Option.OrElse方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OptionalTests
public void OptionalTests()
{
var a = new Option<string>();
Assert.IsFalse(a.IsSet);
Assert.Throws<UnexpectedObjectException>(() => a.Unwrap());
Assert.AreEqual("Oi", a.UnwrapOr("Oi"));
var b = new Option<string>("Hello, World!");
Assert.IsTrue(b.IsSet);
Assert.AreEqual("Hello, World!", b.Unwrap());
Assert.AreEqual("Hello, World!", b.UnwrapOr("Goodbye!"));
var c = new Option<int>(5);
Assert.AreEqual(42, c.Map((x) => new Option<int>(37 + x)).Unwrap());
var d = new Option<int>();
Assert.IsFalse(d.Map((x) => new Option<int>(x)).IsSet);
Assert.AreEqual(42, d.MapOr(42, (x) => x));
Assert.AreEqual(42, d.MapOrElse((x) => x, () => c.MapOr(0, (x) => 37 + x)));
Assert.IsFalse(a.And(b).IsSet);
Assert.IsTrue(b.And(c).IsSet);
Assert.AreEqual(5, b.And(c).Unwrap());
Assert.IsTrue(a.Or(b).IsSet);
Assert.AreEqual(b.Or(a), a.Or(b));
Assert.AreEqual(5, d.Or(c).Unwrap());
Assert.AreEqual(5, c.OrElse(() => new Option<int>(42)).Unwrap());
Assert.AreEqual(42, d.OrElse(() => new Option<int>(42)).Unwrap());
}
示例2: OrElse_Some_ReturnsSome
public void OrElse_Some_ReturnsSome()
{
var option = new Option<A>(new A(3));
Assert.Equal(3, option.OrElse(() => new Option<A>(new A())).Value.Value);
}
示例3: OrElse_None_ReturnsFuncResult
public void OrElse_None_ReturnsFuncResult()
{
var option = new Option<A>();
Assert.Equal(5, option.OrElse(() => new Option<A>(new A(5))).Value.Value);
}