当我们用循环给一个ListView添加信息是,比如下面的这段代码
while
{
ListViewItem lvi=new ListViewItem(this.No);
item.SubItems.Add(this.Name);
item.SubItems.Add(this.Age);
item.SubItems.Add(this.Grade);
this.listView1.items.Add(item);
}
此时,其实已经存在很多个名字为 lvi的ListViewItem ,但是我们平时在编写代码时是不允许有同名的变量的,放在循环里面的话,为什么编译器能够通过?,内部是如何区分这些同名的变量的?
while
{
ListViewItem lvi=new ListViewItem(this.No);
item.SubItems.Add(this.Name);
item.SubItems.Add(this.Age);
item.SubItems.Add(this.Grade);
this.listView1.items.Add(item);
}
此时,其实已经存在很多个名字为 lvi的ListViewItem ,但是我们平时在编写代码时是不允许有同名的变量的,放在循环里面的话,为什么编译器能够通过?,内部是如何区分这些同名的变量的?
每一次循环结束之后,lvi会变成内存垃圾待回收。编绎器不认为有这样的变量存在,所以不会出问题。