【发布时间】:2016-06-26 19:21:36
【问题描述】:
这对我来说是非常不可预测的代码结果。
没想到这段代码会产生这样的结果。
所以,我阅读了 Jeffrey Richter 的书 (clr ia c#),并且有一个包含此代码的示例。
internal class ClassRoom
{
private List<String> _students = new List<string>();
public List<String> Students { get { return _students; } }
}
ClassRoom classRoom = new ClassRoom
{
Students = {"Mike", "Johny", "Vlad", "Stas"}
};
foreach (var some in classRoom.Students)
{
Console.WriteLine(some);
}
而且,正如你们中的一些人建议的那样,我们可以在控制台中看到四个名称。 所以,我的问题是:
我们如何获得我们的名字,如果他们要分别在学生和 _students 中,由于不存在学生设置器而没有分配。
__________EDIT_1_______________
我阅读了您的回答,并感谢您的回答。
但是,你知道,这是一种误解...... 实在想不通。
当我初始化 Students 时,我会初始化 _students 吗?
同样重要的是,当我从 IEnumerable(some) 获取变量时, 我从 Students 中获取变量? 我认为不会。
我不明白,我究竟在哪里分配变量(INITALIZE)_students 集合?
谢谢你帮我弄清楚!
【问题讨论】:
-
通过添加东西到列表中。
-
是的。当我们取“一些”变量时,我们从 _students 取变量,不是吗?
标签: c# properties clr getter-setter