给这么多分,那就让我来给你翻一翻这几个类的内幕吧!
实际上ListBox1是一个ListBox类的对象,Items是一个ObjectCollection类的对象,这两个类和自定义的类没有区别,只是它们被Microsoft封装起来了,我们除了它们的公有方法和属性外无法看到里面的其它东西。
也就是说这个Items除了是ListBox1对象的属性这个身份外,它本身也是一个对象,也有自己的方法和属性,如Add方法就是Items对象的一个公有方法。
下面是我模拟的这几个对象的关系,当然这肯定是一个阉割版的ListBox和ObjectCollection类了。
class Program
{
static void Main()
{
ListBox lb = new ListBox();
lb.Items.Add("sdf");
Console.Write(lb.Items[0].ToString());
Console.Read();
}
}
class ListBox
{
ObjectCollection col = new ObjectCollection();
public ObjectCollection Items
{
get { return this.col; }
set { this.col = value; }
}
/*
... ListBox的其它属性和函数
*/
}
class ObjectCollection
{
List<object> items = new List<object>();
public void Add(object item)
{
this.items.Add(item);
}
public object this[int index]
{
get { return this.items[index]; }
set { this.items[index] = value; }
}
/*
... ObjectCollection的其它属性和函数
*/
}
你把它复制到控制台程序里面去可以看看模拟情况。。。
温馨提示:答案为网友推荐,仅供参考