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关键词。谁给我说下
where T : Animal
必须用Animal类型来实例化private List <T> animals = new List <T>();
实例化一个新对象animals
实例化一个新对象animals public List<T> Animals
{
get { return animals; }
}这个属性访问对象?不是字段吗?
表示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对象的属性