C# 泛型类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var dogCage = new Cage<Dog>(1);
            // 放进去
            dogCage.Putin(new Dog("jack"));
            dogCage.Putin(new Dog("job"));
            // 取出来
            var dog2= dogCage.Takeout();
            dog2.ShowName();
        }
    }
    public class Dog
    {
        private string Name;
        private int age = 0;
        public Dog(string dname)
        {
            Name = dname;
        }
        public void ShowName()
        {
            Console.WriteLine("这是一条狗:{0}", Name);
        }
        public void ShowAge()
        {
            Console.WriteLine("宠物的年龄为" + age);
        }
        // 使用重载运算符
        public static Dog operator ++(Dog dog)
        {
            dog.age++;  // 年龄自增
            return dog;
        }
    }
    // 泛型类的使用,定义笼子
    public class Cage<T>
    {
        T[] array;  // 定义一个数组
        readonly int Size;  // 定义一个笼子大小
        int num;  // 定义现有的数量
        public Cage(int n)
        {
            // 构造函数
            Size = n;
            num = 0;
            array = new T[Size];  // 设置数组(笼子)的大小
        }
        // 将宠物放到笼子里
        public void Putin(T pet)
        {
            // 如果还没有满,将宠物放到笼子里
            if (Size > num)
                array[num++] = pet;
            else
                Console.WriteLine("宠物已经装满了...");
        }
        // 将宠物取出来
        public T Takeout()
        {
            // 如果有宠物,那么取出来
            if (num > 0)
                return array[--num];
            else
            {
                // 如果没有宠物了,那么返回空
                Console.WriteLine("笼子空了!!!");
                return default(T);
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/namejr/p/10269663.html