規約

public static class Spec { /// <summary> /// True條件。 /// </summary> /// <typeparam name="T"></typeparam> /// <returns>True條件</returns> public static Expression<Func<T, bool>> True<T>() { return f => true; } /// <summary> /// False條件。 /// </summary> /// <typeparam name="T"></typeparam> /// <returns>False條件</returns> public static Expression<Func<T, bool>> False<T>() { return f => false; } /// <summary> /// 邏輯或。 /// </summary> /// <param name="left">左邏輯。</param> /// <param name="right">右邏輯。</param> /// <returns>邏輯表達式。</returns> public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> left, Expression<Func<T, bool>> right) { var invokedExpr = Expression.Invoke(right, left.Parameters); return Expression.Lambda<Func<T, bool>>(Expression.Or(left.Body, invokedExpr), left.Parameters); } /// <summary> /// 邏輯與。 /// </summary> /// <param name="left">左邏輯。</param> /// <param name="right">右邏輯。</param> /// <returns>邏輯表達式。</returns> public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> left, Expression<Func<T, bool>> right) { var invokedExpr = Expression.Invoke(right, left.Parameters); return Expression.Lambda<Func<T, bool>>(Expression.And(left.Body, invokedExpr), left.Parameters); } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章