Exemple #1
0
 public ConditionalEvaluator(bool condition, Func <int> truthyFunc = null, Func <int> falsyFunc = null, Condition conditionType = Condition.And)
 {
     Also               = this;
     this.condition     = condition;
     this.truthyFunc    = truthyFunc;
     this.falsyFunc     = falsyFunc;
     this.conditionType = conditionType;
 }
Exemple #2
0
        public ConditionalEvaluator Untrue(Func <int> truthyFunc)
        {
            ConditionalEvaluator not =
                new ConditionalEvaluator(true, truthyFunc, null, Condition.Not);

            not.Also = this;
            ce.Add(not);
            return(not);
        }
Exemple #3
0
        public ConditionalEvaluator Or(bool condition, Func <int> truthyFunc = null, Func <int> falsyFunc = null)
        {
            ConditionalEvaluator or =
                new ConditionalEvaluator(condition, truthyFunc, falsyFunc, Condition.Or);

            or.Also = this;
            ce.Add(or);
            return(or);
        }
Exemple #4
0
        public ConditionalEvaluator And(bool condition, Func <int> truthyFunc = null, Func <int> falsyFunc = null)
        {
            ConditionalEvaluator tAnd =
                new ConditionalEvaluator(condition, truthyFunc, falsyFunc, Condition.And);

            tAnd.Also = this;
            ce.Add(tAnd);
            return(tAnd);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            bool[] flags            = new bool[] { true, false, true, true, false, false };
            ConditionalEvaluator ce = new ConditionalEvaluator
                                          (flags[0], GetFunc("0 true"), GetFunc("0 false"));

            ce
            .And(flags[1], GetFunc("0 Or 1 true"), GetFunc("0 Or 1 false"))
            .Untrue(flags[2], GetFunc("True only on (0 Or 1) == false"));
            ce
            .Or(flags[3] || flags[4], GetFunc("0 AND 3 true"), GetFunc("0 AND 3 false"))
            .Untrue(GetFunc("True only on (0 AND 3) == false"));

            // The above code replaces
            //if (flags[0])
            //{ Console.WriteLine("0 true"); }
            //else { Console.WriteLine("0 false"); }

            //if (flags[0] || flags [1])
            //{ Console.WriteLine("0 Or 1 true"); }
            //else { Console.WriteLine("0 Or 1 false"); }

            //if ((!(flags[0] || flags [1])) && (flags[2]))
            //{ Console.WriteLine("True only on (0 Or 1) == false"); }

            //if (flags[0] && (flags[3] || flags[4]))
            //{ Console.WriteLine("0 AND 3 true"); }
            //else { Console.WriteLine("0 AND 3 false"); }

            //if (!(flags[0] && (flags[3] || flags[4])))
            //{ Console.WriteLine("True only on(0 AND 3) == false"); }

            Console.WriteLine("Press ESC key to quit, any other key to see demo");
            ConditionalEvaluator ce2 = new ConditionalEvaluator(
                Console.ReadKey().Key != ConsoleKey.Escape,             // Condition
                () => { ce.Evaluate(); Console.ReadKey(); return(0); }, // If
                GetFunc("Non-Enter pressed"));                          // Else

            ce2.Evaluate();

            // The above block replaces
            if (Console.ReadKey().Key != ConsoleKey.Escape)
            {
                ce.Evaluate();
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Non-Enter pressed");
            }
        }