public static IEqualityExpression <T> Equals <T, K>(this IEqualityDeclaration <T> parameters, Expression <Func <T, K?> > selector, bool nullInequal) where K : struct, IEquatable <K> { if (parameters == null) { throw new NullReferenceException(); } if (selector == null) { throw new ArgumentNullException("selector"); } return(new EqualityExpressionImpl <T>(EqualsCore(parameters.Parameters, selector, NullableEquality <K>(EquatableEquality <K>(), nullInequal)))); }
public static IEqualityExpression <T> Equals <T, K>(this IEqualityDeclaration <T> parameters, Expression <Func <T, K> > selector, IEqualityComparer <K> equalityComparer) { if (parameters == null) { throw new NullReferenceException(); } if (selector == null) { throw new ArgumentNullException("selector"); } if (equalityComparer == null) { throw new ArgumentNullException("equalityComparer"); } return(new EqualityExpressionImpl <T>(EqualsCore(parameters.Parameters, selector, ComparerEquality(equalityComparer)))); }
public static IEqualityExpression <T> Equals <T, K>(this IEqualityDeclaration <T> parameters, Expression <Func <T, K> > selector, Expression <Equality <K> > equality, bool nullInequal) where K : class { if (parameters == null) { throw new NullReferenceException(); } if (selector == null) { throw new ArgumentNullException("selector"); } if (equality == null) { throw new ArgumentNullException("equality"); } return(new EqualityExpressionImpl <T>(EqualsCore(parameters.Parameters, selector, ObjectEquality(equality, nullInequal)))); }