示例#1
0
        static void Main(string[] args)
        {
            Circle c = new Circle();

            Console.WriteLine("Circumference of Circle is " + c.getCircumference());
            Console.WriteLine(c.ToString());

            Rectangle r = new Rectangle();

            r.setLength(5);
            r.setWidth(5);
            Console.WriteLine("perimeter Rectangle is " + r.getPerimeter());
            Console.WriteLine("area Rectangle is " + r.getArea());
            Console.WriteLine(r.ToString());
        }
示例#2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var size = 0.0;
            // D - Dependency Inversion Principle -Depend on abstractions, not on concretions.
            // LSP - Lickov Subsitution Principle - Any dervied class is able to subsitute to base class without breaking it.
            // https://www.youtube.com/watch?v=-3UXq2krhyw
            ISolidPrinciple2 sharp_generic;
            ISolidPrinciple2 sharp_reference;
            ISolidPrinciple2 sharp_copy; // https://docs.microsoft.com/en-us/dotnet/api/system.object?view=netframework-4.7.2

            //SolidPrinciple2 sharp_generic;
            //SolidPrinciple2 sharp_reference;
            //ISolidPrinciple2 sharp_copy; // https://docs.microsoft.com/en-us/dotnet/api/system.object?view=netframework-4.7.2

            sharp_generic = new Sqaure(2);
            size          = sharp_generic.Size();
            Console.WriteLine(sharp_generic.Id);
            Console.WriteLine(sharp_generic.SharpName);
            Console.WriteLine(sharp_generic.ToString());
            Console.WriteLine(sharp_generic);
            Console.WriteLine(size);
            Console.WriteLine((sharp_generic as Sqaure).SpecialSqaure());
            Console.WriteLine(((Sqaure)sharp_generic).SpecialSqaure());
            sharp_copy      = (Sqaure)sharp_generic.Copy(); // Make another SolidPrinciple2 object that is a copy of the first.
            sharp_reference = sharp_generic;                // Make another variable that references the first SolidPrinciple2 object.
            if (sharp_generic is Sqaure)
            {
                Console.WriteLine("It is a Sqaure");
            }
            if (sharp_copy is Sqaure)
            {
                Console.WriteLine("It is a Copy Sqaure");
            }
            if (sharp_reference is Sqaure)
            {
                Console.WriteLine("It is a Reference Sqaure");
            }
            Console.WriteLine(object.ReferenceEquals(sharp_generic, sharp_copy));      // The line below displays false because p1 and p2 refer to two different objects.
            Console.WriteLine(object.Equals(sharp_generic, sharp_copy));               // The line below displays true because p1 and p2 refer to two different objects that have the same value.
            Console.WriteLine(object.ReferenceEquals(sharp_generic, sharp_reference)); // The line below displays true because p1 and p3 refer to one object.


            sharp_generic = new Rectangle(2, 3);
            size          = sharp_generic.Size();
            Console.WriteLine(sharp_generic.Id);
            Console.WriteLine(sharp_generic.SharpName);
            Console.WriteLine(sharp_generic.ToString());
            Console.WriteLine(sharp_generic);
            Console.WriteLine(size);
            sharp_copy      = (Rectangle)sharp_generic.Copy();
            sharp_reference = sharp_generic;
            if (sharp_generic is Rectangle)
            {
                Console.WriteLine("It is a Retangle");
            }
            if (sharp_copy is Rectangle)
            {
                Console.WriteLine("It is a Copy Retangle");
            }
            if (sharp_reference is Rectangle)
            {
                Console.WriteLine("It is a Reference Retangle");
            }
            Console.WriteLine(object.ReferenceEquals(sharp_generic, sharp_copy));      // The line below displays false because p1 and p2 refer to two different objects.
            Console.WriteLine(object.Equals(sharp_generic, sharp_copy));               // The line below displays true because p1 and p2 refer to two different objects that have the same value.
            Console.WriteLine(object.ReferenceEquals(sharp_generic, sharp_reference)); // The line below displays true because p1 and p3 refer to one object.


            sharp_generic = new Cube(2, 3, 4);
            size          = sharp_generic.Size();
            Console.WriteLine(sharp_generic.Id);
            Console.WriteLine(sharp_generic.SharpName);
            Console.WriteLine(sharp_generic.ToString());
            Console.WriteLine(sharp_generic);
            Console.WriteLine(size);
            sharp_copy      = (Cube)sharp_generic.Copy();
            sharp_reference = sharp_generic;
            if (sharp_generic is Cube)
            {
                Console.WriteLine("It is a Cube");
            }
            if (sharp_copy is Cube)
            {
                Console.WriteLine("It is a Copy Cube");
            }
            if (sharp_reference is Cube)
            {
                Console.WriteLine("It is a Reference Cube");
            }

            sharp_generic = new Circle(6);
            size          = sharp_generic.Size();
            Console.WriteLine(sharp_generic.Id);
            Console.WriteLine(sharp_generic.SharpName);
            Console.WriteLine(sharp_generic.ToString());
            Console.WriteLine(sharp_generic);
            Console.WriteLine(size);
            sharp_copy      = (Circle)sharp_generic.Copy();
            sharp_reference = sharp_generic;
            if (sharp_generic is Circle)
            {
                Console.WriteLine("It is a Circle");
            }
            if (sharp_copy is Circle)
            {
                Console.WriteLine("It is a Copy Circle");
            }
            if (sharp_reference is Circle)
            {
                Console.WriteLine("It is a Reference Circle");
            }

            Console.ReadLine();
        }