Example #1
0
        private static void ChildClassTypeVerifyTest()
        {
            BaseClass childA = new DerivedClassA();
            BaseClass childB = new DerivedClassB();

            if (childA is DerivedClassB)
            {
                Console.WriteLine("childA is DerivedClassB");
            }
            else
            {
                Console.WriteLine(@"childA is DerivedClassA");
            }

            if (childB is DerivedClassB)
            {
                Console.WriteLine("childB is DerivedClassB");
            }
            else
            {
                Console.WriteLine(@"childB is DerivedClassA");
            }

            if (childB is BaseClass)
            {
                Console.WriteLine("childB is derived from BaseClass");
            }
            else
            {
                Console.WriteLine(@"Where childB comes from?");
            }
        }
Example #2
0
        public void should_not_violate_ploymorphism()
        {
            DerivedClassA[] subClassArray  = { new DerivedClassA() };
            BaseClass[]     baseClassArray = ToBaseClassArray(subClassArray);

            var derivedClassB = new DerivedClassB();

            baseClassArray[0] = derivedClassB;

            Assert.Same(derivedClassB, baseClassArray[0]);
        }
Example #3
0
    private static void VerifyModifiers()
    {
        DerivedClassA class_a = new DerivedClassA();
        DerivedClassB class_b = new DerivedClassB();
        BaseClass     base_a  = class_a;
        BaseClass     base_b  = class_b;

        Debug.Assert(class_a.GetCode() == "CODE-2", "class_a.GetCode() should return CODE-2");
        Debug.Assert(class_b.GetCode() == "CODE-3", "class_b.GetCode() should return CODE-3");
        Debug.Assert(base_a.GetCode() == "CODE-1", "base_a.GetCode() should return CODE-1");
        Debug.Assert(base_b.GetCode() == "CODE-1", "base_b.GetCode() should return CODE-1");

        Debug.Assert(class_a.GetDescription() == "CLASS-A", "class_a.GetDescription() sould return CLASS-A");
        Debug.Assert(class_b.GetDescription() == "B", "class_b.GetDescription() should return B");
        Debug.Assert(base_a.GetDescription() == "CLASS-A", "base_1.GetDescription() should return CLASS-A");
        Debug.Assert(base_b.GetDescription() == "B", "base_b.GetDescription() should return B");
    }
    public static void Main()
    {
        /*
         *      If base class referrence is pointing to dirived class object with virtual and override keywork then
         *      derived class method will be invoked then it is called method overriding.
         */
        BaseClass b = new DerivedClassA();

        b.Print();

        /*
         *      If base class referrence is pointing to dirived class object with virtual (Optional) and new keywork then
         *      base class method will be invoked then it is called method hidding.
         */
        BaseClass b1 = new DerivedClassB();

        b1.Print();
    }
Example #5
0
        public void AAAA()
        {
            // Arrange
            var config = new AutoMapper.MapperConfiguration(cfg =>
            {
                cfg.CreateMap <BaseClass, ClassAggregate>().IncludeAllDerived();
                cfg.CreateMap <DerivedClassA, ClassAggregate>().IncludeAllDerived();
                cfg.CreateMap <DerivedClassB, ClassAggregate>().IncludeAllDerived();
            });

            var obj = new DerivedClassB
            {
                Prop1 = "aa",
                Prop3 = "333"
            };



            var mapper = new AutoMapper.Mapper(config);
            // var result = mapper.Map<ClassAggregate>(obj, opts => opts.CreateMissingTypeMaps = true);
        }
    public DerivedClassA()
    {
        DerivedClassB otherObject = new DerivedClassB();

        otherObject.sharedMember = sharedMember;   //Compiler error, cannot access protected member
    }