示例#1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Create an Array type collection of Animal " +
                  "objects and use it:");

             Animal[] animalArray = new Animal[2];
             Cow myCow1 = new Cow("Deirdre");
             animalArray[0] = myCow1;
             animalArray[1] = new Chicken("Ken");

             foreach (Animal myAnimal in animalArray)
             {
            Console.WriteLine("New {0} object added to Array collection, " +
                              "Name = {1}", myAnimal.ToString(), myAnimal.Name);
             }

             Console.WriteLine("Array collection contains {0} objects.",
                           animalArray.Length);
             animalArray[0].Feed();
             ((Chicken)animalArray[1]).LayEgg();
             Console.WriteLine();

             Console.WriteLine("Create an ArrayList type collection of Animal " +
                           "objects and use it:");
             ArrayList animalArrayList = new ArrayList();
             Cow myCow2 = new Cow("Hayley");
             animalArrayList.Add(myCow2);
             animalArrayList.Add(new Chicken("Roy"));

             foreach (Animal myAnimal in animalArrayList)
             {
            Console.WriteLine("New {0} object added to ArrayList collection," +
                              " Name = {1}", myAnimal.ToString(), myAnimal.Name);
             }
             Console.WriteLine("ArrayList collection contains {0} objects.",
              animalArrayList.Count);
             ((Animal)animalArrayList[0]).Feed();
             ((Chicken)animalArrayList[1]).LayEgg();
             Console.WriteLine();

             Console.WriteLine("Additional manipulation of ArrayList:");
             animalArrayList.RemoveAt(0);
             ((Animal)animalArrayList[0]).Feed();
             animalArrayList.AddRange(animalArray);
             ((Chicken)animalArrayList[2]).LayEgg();
             Console.WriteLine("The animal called {0} is at index {1}.",
                           myCow1.Name, animalArrayList.IndexOf(myCow1));
             myCow1.Name = "Janice";
             Console.WriteLine("The animal is now called {0}.",
                           ((Animal)animalArrayList[1]).Name);
             Console.ReadKey();
        }
示例#2
0
文件: Program.cs 项目: sev-it/asp.net
        static void Main(string[] args)
        {
            Console.WriteLine ("Create an Array type collection of Animal " + 
                               "objects and use it:"); 
                               // Создание коллекции типа Array из объектов 
                               // Animal и ее использование 
            Animal[] animalArray = new Animal[2]; 
            Cow myCow1 = new Cow("Deirdre"); 
            animalArray[0] = myCow1; 
            animalArray[1] = new Chicken ("Ken") ; 
            foreach (Animal myAnimal in animalArray) 
            { 
                Console.WriteLine("New {0} object added to Array collection, " + 
                                   "Name = {1}", myAnimal.ToString() , myAnimal.Name) ; 
                                  // В коллекцию Array добавлен новый объект 
            }
            Console.WriteLine("Array collection contains {0} objects.", animalArray.Length);
                                 // Вывод количества объектов в коллекции Array  

            animalArray[0].Feed(); 
            ((Chicken)animalArray[1]).LayEgg(); 
            Console.WriteLine(); 
            Console.WriteLine("Create an ArrayList type collection of Animal " + "objects and use it:") ; 
            ArrayList animalArrayList = new ArrayList () ; 
            Cow myCow2 = new Cow("Hayley"); 
            animalArrayList.Add(myCow2); 
            animalArrayList.Add(new Chicken ("Roy")); 
            foreach (Animal myAnimal in animalArrayList) 
            { 
                Console.WriteLine ("New {0} object added to ArrayList collection," + 
                                    " Name = {1}", myAnimal.ToString() , myAnimal.Name) ; 
            } 
            Console.WriteLine("ArrayList collection contains {0} objects.", 
                               animalArrayList.Count); 
            ((Animal)animalArrayList[0]).Feed(); 
            ((Chicken)animalArrayList[1]).LayEgg(); 
            Console.WriteLine(); 
            Console. WriteLine ("Additional manipulation of ArrayList:") ; 
                                // Дополнительное манипулирование коллекцией ArrayList 
            animalArrayList.RemoveAt(0); 
            ((Animal)animalArrayList[0]).Feed(); 
            animalArrayList.AddRange(animalArray); 
            ((Chicken)animalArrayList[2]).LayEgg(); 
            Console.WriteLine("The animal called {0} is at index {1}.", 
                               myCow1.Name, animalArrayList.IndexOf(myCow1)); 
                             // Вывод животных и позиций 
            myCow1.Name = "Janice"; 
            Console.WriteLine("The animal is now called {0}.", ((Animal) animalArrayList[1]).Name) ; 
                             // Вывод животных 
            Console.ReadKey(); 
        }
示例#3
0
        static void Main(string[] args)
        {
            int    testInt  = 3;
            object testObj  = testInt;
            int    testInt2 = (int)testObj;


            Console.WriteLine("Create an Array type collection of Animal " +
                              "objects and use it:");

            Animal[] animalArray = new Animal[2];

            Cow myCow1 = new Cow("Lea");

            animalArray[0] = myCow1;
            animalArray[1] = new Chicken("Noa");

            foreach (var animal in animalArray)
            {
                Console.WriteLine($"New {animal.ToString()} object added to Array" +
                                  $" collection, Name = {animal.Name}");
            }

            Console.WriteLine($"Array collection contains {animalArray.Length} objects");

            animalArray[0].Feed();
            ((Chicken)animalArray[1]).LayEgg();
//            animalArray[1].LayEgg();

            Console.WriteLine();
            Console.WriteLine("Create an ArrayList type collection of Animal " +
                              "objects and use it");

            // 无需初始化大小
            ArrayList animaList = new ArrayList
            {
                new Cow("Rual"),
                new Chicken("Andrea")
            };


            // 这里,如果使用var进行循环的话, 直接使用animal.Name会提示错误
            // 因为 使用var,animal会是object格式
            // 所以这里我添加了强转
            // ArrayList实现了IEnumerable接口
            foreach (var animal in animaList)
            {
                Console.WriteLine($"new {animal.ToString()} object added to ArrayList " +
                                  $"collection, Name = {((Animal)animal).Name}");
            }

            // Count-->ICollection接口
            Console.WriteLine($"ArrayList collection contains {animaList.Count}" +
                              "objects");

            // ArrayList集合是System.Object对象的集合(通过多态性赋给Animal对象),所以必须对所有的项进行数据类型转换
            ((Animal)animaList[0]).Feed();
            ((Chicken)animaList[1]).LayEgg();

            Console.WriteLine();
            Console.WriteLine("Additional manipulation of ArrayList:");

            animaList.RemoveAt(0);
            ((Animal)animaList[0]).Feed();
            animaList.AddRange(animalArray);

            ((Chicken)animaList[2]).LayEgg();
            Console.WriteLine($"The animal called {myCow1.Name} is at " +
                              $"index {animaList.IndexOf(myCow1)}.");
            myCow1.Name = "Mary";
            Console.WriteLine("The animal is now " +
                              $"called {((Animal)animaList[1]).Name}.");

            Console.WriteLine("--------------CollectionBaseAnimal------------------");

            CollectionBaseAnimal cbAnimal = new CollectionBaseAnimal();

            cbAnimal.Add(new Cow("Donna"));
            cbAnimal.Add(new Chicken("Kevin"));

            foreach (Animal al in cbAnimal)
            {
                al.Feed();
            }

            // 定义了public Animal this[int animalIndex]这个方法之后
            // 才可以使用 cbAnimal[0]这种索引方式
            Console.WriteLine(cbAnimal[0].ToString());

            Console.ReadKey();
        }
示例#4
0
        static void Main(string[] args)
        {
            //第一行:创建一个数组类型,并使用
            //第二行:对Animal进行实例化此处的数组大小要根据内容设定,不然会报错
            //第三行:对Cow实例化,使用带参函数,体现出了面向对象开发的多态性
            //第四行:

            /*分别对数组对象复制,第一个将myCow1(一个对象,经过Cow实例化后得到的返回值)
             *派生类(Cow)
             *  public Cow(string newName): base(newName){}
             *基类
             *  public Animal(string newName)
             *   {
             *       name = newName;
             *   }
             * 赋值给数组第一个变量
             * 结果:Deirdre
             */
            //第五行:

            /*
             * 此处直接获得Chicken里的带一个参数的返回值对象
             * public Chicken(string newName): base(newName){}
             * 结果:Ken
             */
            Console.WriteLine("Create an Array type collection of Animal object and use it:");
            Animal[] animalArray = new Animal[2];
            Cow      myCow1      = new Cow("Deirdre");

            animalArray[0] = myCow1;
            animalArray[1] = new Chicken("Ken");
            //第一行:使用迭代循环,并定义了myAnimal类型为Animal类型
            //第二行:输出myAnimal的类型和所带属性
            //第三行:输出animalArray数组长度
            //第四行:调用Animal自带的Feed()函数
            //第五行:调用Chicken里的LayEgg()方法,由于animalArray本来是Animal类型,所以调用Chicken的方法,要进行强制类型转换
            foreach (Animal myAnimal in animalArray)
            {
                Console.WriteLine("New {0} object added to Array collection Name = {1}", myAnimal.ToString(), myAnimal.Name);
            }
            Console.WriteLine("Array collection contains {0} objects.", animalArray.Length);
            animalArray[0].Feed();
            ((Chicken)animalArray[1]).LayEgg();
            Console.WriteLine();
            //第二个集合是System.Collection.ArrayList类
            Console.WriteLine("Create an ArrayList type collection of Animal objects and use it:");
            ArrayList animalArrayList = new ArrayList();
            Cow       myCow2          = new Cow("Hayley");

            animalArrayList.Add(myCow2);
            animalArrayList.Add(new Chicken("Roy"));
            foreach (Animal myAnimal in animalArrayList)
            {
                Console.WriteLine("New {0} object added to ArrayList collection Name = {1}", myAnimal.ToString(), myAnimal.Name);
            }
            Console.WriteLine("ArrayList colleciton contains {0} objects.", animalArrayList.Count);
            ((Animal)animalArrayList[0]).Feed();
            ((Chicken)animalArrayList[1]).LayEgg();
            Console.WriteLine();
            //利用了一些ArrayList集合功能超出了Array集合的功能范围
            Console.WriteLine("Additional manipulation of ArrayList:");
            animalArrayList.RemoveAt(0);
            ((Animal)animalArrayList[0]).Feed();
            animalArrayList.AddRange(animalArray);
            ((Chicken)animalArrayList[2]).LayEgg();
            Console.WriteLine("The animal called{0} is at index {1}.", myCow1.Name, animalArrayList.IndexOf(myCow1));
            myCow1.Name = "Janice";
            Console.WriteLine("The animal is now called {0}.", ((Cow)animalArrayList[1]).Name);



            Console.ReadKey();
        }