public static string ToString(Operation_T Op) { switch (Op) { case Operation_T.CREATE_DATABASE: return("CREATE DATABASE"); case Operation_T.CREATE_TABLE: return("CREATE TABLE"); case Operation_T.DELETE: return("DELETE FROM {0} WHERE {1}"); case Operation_T.DROP_TABLE: return("DROP TABLE {0}"); case Operation_T.INSERT: return("INSERT INTO {0} [{1}] VALUES ({2})"); case Operation_T.SELECT: return("SELECT {0} FROM {1}"); case Operation_T.UPDATE: return("UPDATE {0} SET {1} WHERE {2}"); default: return(""); } }
static Arithmetics() { MINUS_ONE = (T)System.Convert.ChangeType(-1, typeof(T)); ZERO = (T)System.Convert.ChangeType(0, typeof(T)); ONE = (T)System.Convert.ChangeType(1, typeof(T)); TWO = (T)System.Convert.ChangeType(2, typeof(T)); THREE = (T)System.Convert.ChangeType(3, typeof(T)); DecimalEpsilon = new decimal(1, 0, 0, false, 27); DecimalPositiveInfinity = 1m / DecimalEpsilon; DecimalNegativeInfinity = -1m / DecimalEpsilon; System.Linq.Expressions.ParameterExpression paramA = System.Linq.Expressions.Expression.Parameter(typeof(T), "a"); System.Linq.Expressions.ParameterExpression paramB = System.Linq.Expressions.Expression.Parameter(typeof(T), "b"); // Add the parameters together System.Linq.Expressions.BinaryExpression addBody = System.Linq.Expressions.Expression.Add(paramA, paramB); // a-b System.Linq.Expressions.BinaryExpression subtractBody = System.Linq.Expressions.Expression.Subtract(paramA, paramB); // a*b System.Linq.Expressions.BinaryExpression multiplyBody = System.Linq.Expressions.Expression.Multiply(paramA, paramB); // a/b System.Linq.Expressions.BinaryExpression divideBody = System.Linq.Expressions.Expression.Divide(paramA, paramB); // a%b System.Linq.Expressions.BinaryExpression moduloBody = System.Linq.Expressions.Expression.Modulo(paramA, paramB); Add = System.Linq.Expressions.Expression.Lambda <Operation_T>(addBody, paramA, paramB).Compile(); Subtract = System.Linq.Expressions.Expression.Lambda <Operation_T>(subtractBody, paramA, paramB).Compile(); MultiplyInternal = System.Linq.Expressions.Expression.Lambda <Operation_T>(multiplyBody, paramA, paramB).Compile(); Divide = System.Linq.Expressions.Expression.Lambda <Operation_T>(divideBody, paramA, paramB).Compile(); Mod = System.Linq.Expressions.Expression.Lambda <Operation_T>(moduloBody, paramA, paramB).Compile(); }