Exemple #1
0
        public void TestUnifiedNumericMethods()
        {
            double double1 = 10, double2 = 20;
            int    int1 = 11, int2 = 22;

            Console.WriteLine($"CommonMathDynamic basic version{CommonMathDynamic.Add(double1, double2)}");
            Console.WriteLine($"CommonMathDynamic basic version{CommonMathDynamic.Add(int1, int2)}");

            // Throws run-time error
            // string result = CommonMathDynamic.Add(1,4); //because it can't convert dynamic int result to string

            Console.WriteLine($"CommonMathDynamic basic version{CommonMathDynamicWithGenerics.Add(double1, double2)}");
            Console.WriteLine($"CommonMathDynamic basic version{CommonMathDynamicWithGenerics.Add(int1, int2)}");

            // Throws compile-time error
            // string result = CommonMathDynamicWithGenerics.Add(1, 4); // because it can't convert dynamic int result to string
            //short result = CommonMathDynamicWithGenericsExplicitCast.Add((short)1, (short)4); // runtime error because short is implicitly converted to int

            Console.WriteLine($"CommonMathDynamic basic version{CommonMathDynamicWithGenericsExplicitCast.Add(double1, double2)}");
            Console.WriteLine($"CommonMathDynamic basic version{CommonMathDynamicWithGenericsExplicitCast.Add(int1, int2)}");

            short result = CommonMathDynamicWithGenericsExplicitCast.Add((short)1, (short)4);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            int int1 = 5;
            int int2 = 2;

            WriteLine($"Int overload {CommonMath.Add(int1, int2)}");


            double double1 = 20;
            double double2 = 5;

            WriteLine($"Double overload {CommonMath.Add(double1, double2)}");


            WriteLine($"Dynamic version {CommonMathDynamic.Add(int1, int2)}");
            WriteLine($"Dynamic version {CommonMathDynamic.Add(double1, double2)}");

            // string result = CommonMathDynamic.Add(1, 4); // run time error

            WriteLine($"Dynamic with generic version {CommonMathDynamicWithGenerics.Add(int1, int2)}");
            WriteLine($"Dynamic with generic version {CommonMathDynamicWithGenerics.Add(double1, double2)}");

            // string result2 = CommonMathDynamicWithGenerics.Add(1, 4); // compile time error


            short short1 = 1;
            short short2 = 2;

            //WriteLine($"Dynamic with generic version {CommonMathDynamicWithGenerics.Add(short1, short2)}");



            WriteLine($"Dynamic with generic explicit cast version {CommonMathDynamicWithGenericsExplicitCast.Add(short1, short2)}");

            WriteLine("\n\nPress enter to exit...");
            ReadLine();
        }