public class Farm<T> : IEnumerable<T> where T : Animal
    {
        private List<T> animals = new List<T>();        public List<T> Animals
        {
            get { return animals; }
        }
    }
Farm<T> : IEnumerable<T> 这个什么意思?
private List<T> animals = new List<T>(); 这是定义字段吗?不明白。如果是定义片段用到了new关键词。谁给我说下

解决方案 »

  1.   

    Farm <T> : IEnumerable <T> 这个什么意思? 实现范型接口
    where T : Animal
    必须用Animal类型来实例化private List <T> animals = new List <T>();
    实例化一个新对象animals
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx看看 msdn 吧,很基础的东西,一时也解释不清楚。
      

  3.   

    http://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx  这个我看了没看懂。private List <T> animals = new List <T>(); 
    实例化一个新对象animals        public List<T> Animals
            {
                get { return animals; }
            }这个属性访问对象?不是字段吗?
      

  4.   

    Farm<T> : IEnumerable<T>
    表示Farm<T>这个泛型类必须实现IEnumerable<T>这个泛型接口where T : Animal
    表示泛型中的参数T必须是Animal类或Animal子类的实例private List<T> animals = new List<T>();
    这行代码实际上执行了两步操作:
    第一步是定义一个私有字段(该类的实例)private List<T> animals
    第二步是对该实例进行初始化 animals = new List<T>();public List <T> Animals 

        get { return animals; } 
    }
    表示定义个可以获取animals对象的属性