C#入门经典中泛型一章中的一个问题:泛型类变量.属性.add 是怎么回事啊

简单的类如下:publicclassFarm<T>:IEnumerable<T>whereT:Animal{privateList<T>animals=newList<T... 简单的类如下:public class Farm<T>:IEnumerable<T>
where T:Animal
{
private List<T> animals = new List<T>();
public List<T> Animals
{
get
{
return animals;
}
}
}
在主程序中定义了一个变量 farm:Farm<Animal> farm = new Farm<Animal>();
然后向集合中添加时采用的是如下方法:farm.Animals.Add(new Chicken("Vera"));
为什么会这样啊 Animals在类中不是个属性吗 怎么用到了:Animals后使用Add方法啊
什么意识啊
展开
 我来答
marclee44
2012-04-04 · 超过15用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:43.7万
展开全部
Animals是个属性,不过是个list类型的属性,所以,add就是对这个list进行添加值的操作
追问
您的意思是说Add是对animals中添加值吗?这个值怎么会自动添加到animals中呢?这个类不是个只读的吗?
追答
调用方法并不等同于设置值。
也或者是我没说清,farm.Animals.Add实际上是先调用farm.Animals的get方法,获取到实际不对外公开的变量animals,然后调用animals的Add方法,对List animals进行添加值的操作。
还有一点要纠正,这个类不是只读- -最多只是Animals这个属性只读而已。
fej121121
2012-04-04 · TA获得超过651个赞
知道小有建树答主
回答量:655
采纳率:66%
帮助的人:536万
展开全部
Animals 是List<> 类型的当然有add方法
追问
但是是个只读属性啊 使用add之后添加的值给谁了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式