第二个我能理解,因为不能存在两个相同名称的实例,但是为什么我用For去写就允许存在相同名称的实例呢
这涉及到C#变量的作用域的概念,请自行查阅资料。
这里以人名为例帮助你理解为什么?
在C#中,声明变量就好比给人取名字。在一个村子(假如村子名叫“互助村”)里,不可能有两个人取名为“张三”的。这个互助村对应C#中的作用域,“张三”即为一个变量名,“张三”这个具体的人即为一个实例。
极端一点的例子,把作用域缩小到一个家庭的两个双胞胎,总不能把两个双胞胎取成相同的名字(“张三”)吧。
这里的for
=10相当于有10个不同的村子里都有人取名叫“张三”,这是被允许的。
效果是一样的,只是C#的一些语法特性而已,写起来快一点而已。
var com = new Conclu
{
Id = i
};
以上这种写法叫对象初始化器,它可以减少一些代码量,看起来更简洁,仅此而已。