コード例 #1
0
        public static LambdaSpecification <T> And(LambdaSpecification <T> leftSide, LambdaSpecification <T> rightSide)
        {
            Expression <Func <T, bool> > left = leftSide.Predicado;

            IEnumerable <ParameterExpression> parameters = left.Parameters;

            InvocationExpression right = Expression.Invoke(rightSide.Predicado, parameters);

            BinaryExpression andAlso = Expression.AndAlso(left.Body, right);

            Expression <Func <T, bool> > newExpression = Expression.Lambda <Func <T, bool> >(andAlso, parameters);

            return(new LambdaSpecification <T>(newExpression));
        }
コード例 #2
0
 public LambdaSpecification <T> And(LambdaSpecification <T> other)
 {
     return(And(this, other));
 }
コード例 #3
0
 public LambdaSpecification <T> Or(LambdaSpecification <T> other)
 {
     return(Or(this, other));
 }