当前位置:编程学习 > C#/ASP.NET >>

C#自定义泛型类是不是引用类型?

本人初学C#,看入门经典第四版泛型那一章,里面有段代码
            Farm<Animal> farm = new Farm<Animal>();
            farm.Animals.Add(new Cow("Jack"));
            farm.Animals.Add(new Chicken("Vera"));
            farm.Animals.Add(new Chicken("Sally"));
            farm.Animals.Add(new SuperCow("Kevin"));
            farm.MakeNoises();

            Farm<Cow> dairyFarm = farm.GetCows();
            dairyFarm.FeedTheAnimals();

            foreach (Cow cow in dairyFarm)
            {
                if (cow is SuperCow)
                {
                    (cow as SuperCow).Fly();
                }
            }
这个Farm<T>是自定义的泛型类,里面有个方法GetCows()返回的也是泛型类的实例(T为Cow的)
这里有个疑问就是farm如果之后还增加一个,如farm.Animals.Add(new Cow("Test"))的话,
这个dairyFarm是否会随之变化,自己测试了下,没有变化
不太清楚这个泛型类是不是引用类型,如果是的话,为什么这个dairyFarm没跟着变化
求达人解答,谢谢 --------------------编程问答-------------------- public Farm<Cow> GetCows()
        {
            Farm<Cow> cowFarm = new Farm<Cow>();
            foreach (T animal in animals)
            {
                if (animal is Cow)
                {
                    cowFarm.Animals.Add(animal as Cow);
                }
            }
            return cowFarm;
        }
cowFarm.Animals.Add(animal as Cow);莫非是因为这个语句?将animal显示转换为Cow的实例,并没有对animal引用? --------------------编程问答-------------------- 当然是引用类型,值类型只有那么几个。
array都是引用类型 --------------------编程问答-------------------- 这个as执行转换后,不会对源对象引用吧 --------------------编程问答-------------------- 当然是引用类型,除了值类型和结构 其他都是引用类型
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,