欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c#自定义泛型类的实现

程序员文章站 2023-12-19 09:04:04
闲来无事,自己研究了泛型类的简单的使用,where表示泛型约束,表示泛型类型中的参数只能是car类型,ienumerable是一个接口,一个集合要支持foreach遍历,必...
闲来无事,自己研究了泛型类的简单的使用,
where表示泛型约束,表示泛型类型中的参数只能是car类型,ienumerable是一个接口,一个集合要支持foreach遍历,
必须实现ienumerable接口
复制代码 代码如下:

public class car
    {
        public string petname;
        public int speed;
        public car(string name, int currentspeed)
        {
            petname = name;
            speed = currentspeed;
        }
        public car() { }
    }
    public class carcollection<t> : ienumerable<t> where t : car
    {
        private list<t> tcars = new list<t>();
        //添加
        public void addcar(t t)
        {
            tcars.add(t);
        }
        //获取其中一个
        public t getcar(int pos)
        {
           return tcars[pos];
        }
        public int count()
        {
            return tcars.count;
        }
        #region ienumerable<t> 成员
        public ienumerator<t> getenumerator()
        {
            return tcars.getenumerator();
        }
        #endregion
        #region ienumerable 成员
        system.collections.ienumerator system.collections.ienumerable.getenumerator()
        {
            return tcars.getenumerator();
        }
        #endregion
    }

复制代码 代码如下:

 private void button1_click(object sender, eventargs e)
        {
            car car1 = new car("one", 150);
            car car2= new car("two", 50);
            car car3 = new car("three", 150);
            carcollection<car> cars = new carcollection<car>();
            cars.addcar(car1);
            cars.addcar(car2);
            cars.addcar(car3);
            messagebox.show(cars.count().tostring());
            foreach (car item in cars)
            {
                messagebox.show(item.petname+"--"+item.speed.tostring());
            }
        }

上一篇:

下一篇: