如题:! 本人在这个暑假在C#培训,现在在连接数据库之类的,可是我越学,很过概念就越模糊。就比如这个3个来说吧。
比如:
namespace abcd
{
public class DocumentCollection : CollectionBase
{
public DocumentCollection() { }
public DocumentCollection(DocumentCollection value)
{
this.AddRange(value);
}
public DocumentCollection(string[] value)
{
this.AddRange(value);
} public string this[int index]
{
get { return ((string)(List[index])); }
set { List[index] = value; }
} public int Add(string value)
{
return List.Add(value);
}
问题1:
比如这里的list(List.Add(value);),它在它的类里面根本就没有定义和调用?难道list是系统自定义的函数?再者就是,它把这个value值添加到哪里了?
问题2:
还有就是this.AddRange(value)中的this是不是指的是DocumentCollection的一个对象的一个实例?
问题3:
List[index] = value中value的值是系统的,可是它怎么来的??
谢谢大家,小弟不才。
分不多,但我会尽量给,但我希望答案不要 ctrl +c 然后再ctrl +v。
比如:
namespace abcd
{
public class DocumentCollection : CollectionBase
{
public DocumentCollection() { }
public DocumentCollection(DocumentCollection value)
{
this.AddRange(value);
}
public DocumentCollection(string[] value)
{
this.AddRange(value);
} public string this[int index]
{
get { return ((string)(List[index])); }
set { List[index] = value; }
} public int Add(string value)
{
return List.Add(value);
}
问题1:
比如这里的list(List.Add(value);),它在它的类里面根本就没有定义和调用?难道list是系统自定义的函数?再者就是,它把这个value值添加到哪里了?
问题2:
还有就是this.AddRange(value)中的this是不是指的是DocumentCollection的一个对象的一个实例?
问题3:
List[index] = value中value的值是系统的,可是它怎么来的??
谢谢大家,小弟不才。
分不多,但我会尽量给,但我希望答案不要 ctrl +c 然后再ctrl +v。
添加到list中了。
2.一个对象就是一个类的实例。
3.这个是索引器的定义,value是使用索引器给list中某个成员赋值时,出现在“=”右边的值。
this[int index]
索引器
类中的对象可以像数组使用
this声明索引器 ,this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员
List 和IList 是在Collection命名空间里定义的的数组 ArrList可定义不定长数组 index是数组里的下标 数组的下标定义了该值。没什么深意 不是系统里面的值 系统里面只是定义了这么一个数组 数组里面的东西要靠自己添加进去。Add方法可以向数组里面任意添加类型相同的 数据。
List其实是基类(CollectionBase)里面的一个属性,使用base.List也一样。CollectionBase是一个用于实现集合的虚类,看名字就可以知道,DocumentCollection 这个类实现了CollectionBase,所以DocumentCollection 本身就是一个集合,那么value自然就是添加到这个集合本身了问题2:
是的,this就是指当前这个对象;问题3:
C#语言有两个函数--一个赋值函数(get),一个取值函数(set)
set里面的value就是当你赋值时的这个“值”;例如
DocumentCollection dc=new DocumentCollection();
dc.Add("a");dc[0]="b";
这时,在set段里的value就是"b";