예제 #1
0
        public object Clone()
        {
            ClassClonable newClass = this.MemberwiseClone() as ClassClonable;

            newClass.ap = this.ap;
            return(newClass);
        }
예제 #2
0
        public static void Run()
        {
            AirPlanes ap = new AirPlanes();

            Console.WriteLine(ap[5]);
            if (ap is IAirCraft)
            {
                Console.WriteLine("Ap is IAirCraft");
            }

            IAirCraft airCraft = ap as IAirCraft;

            ap = airCraft as AirPlanes;
            ap = (AirPlanes)airCraft;

            AirPlanes  ab  = ap as AirPlanes;
            AirPlanes  ab2 = airCraft as AirPlanes;
            ICloneable icl = airCraft as ICloneable;

            if (icl != null)
            {
                Console.WriteLine("IClonable");
            }
            else
            {
                Console.WriteLine("NOT!");
            }


            ClassEnumerable ce = new ClassEnumerable();

            foreach (var t in ce)
            {
                Console.WriteLine(t);
            }
            foreach (var r in ce.GetInt(true))
            {
                Console.WriteLine(r);
            }



            /**********************/
            ClassClonable cc      = new ClassClonable();
            ClassClonable ccClone = cc.Clone() as ClassClonable;

            cc.ShowData();
            ccClone.ShowData();
            cc.ChangeData();


            cc.ShowData();
            ccClone.ShowData();

            ClassClonable deepCopied = cc.DeepCopy();

            Console.WriteLine("Deep Copy");

            deepCopied.ShowData();
            /**********************************/
            ClassComparable        comp1    = new ClassComparable("pokolorowany");
            ClassComparable        comp2    = new ClassComparable("powietrze");
            ClassComparable        comp3    = new ClassComparable("co");
            ClassComparable        comp4    = new ClassComparable("kazdy");
            ClassComparable        comp5    = new ClassComparable("tyl");
            List <ClassComparable> compList = new List <ClassComparable>()
            {
                comp1, comp2, comp3, comp4, comp5
            };

            compList.Sort();
            foreach (var t in compList)
            {
                Console.WriteLine(t.Name);
            }


            compList.Sort(new NamingComparer());
            foreach (var t in compList)
            {
                Console.WriteLine(t.Name);
            }


            comp1.CompareTo(comp2);


            //   if (comp1 > comp2) Console.WriteLine("OK");
        }