// ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull public override bool Equals(object obj) { if (obj is Maybe <T> ) { return(_option.EqualsMaybe((Maybe <T>)obj)); } var optionObj = (Option <T>)obj; return((object)optionObj != null && _option.EqualsOption(optionObj)); }
// ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull public override bool Equals(object obj) { switch (obj) { case Maybe <T> maybe: return(Option.EqualsMaybe(maybe)); case Option <T> option: return(Option.EqualsOption(option)); default: return(false); } }
// ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull public override bool Equals(object obj) { if (obj is Maybe <T> maybe) { return(Option.EqualsMaybe(maybe)); } if (obj is Option <T> option) { return(Option.EqualsOption(option)); } return(false); }