C#指代的功能介绍

在向大家详细介绍C#指代之前,首先让大家了解下C#对象索引机制,然后全面介绍C#指代。

C#对象索引机制(Indexer)

C#中引入了对象索引机制。说得明白点,对象索引其实就是对象数组。这里和上一节中的属性联系起来讲一下,属性需要隐藏Get和Set方法,而在索引机制中,各个对象的Get或者Set方法是暴露出来的。比如下面的例子就比较清楚地说明了这一点。

public class Skyscraper  


{  


Story[] stories;  


public Story this [int index] {  


get {  


return stories [index];  


}  


set {  


if (value != null) {  


stories [index] = value;  


}  


}  


}  


...  


}  

C#指代(Delegate)

C#指代这个玩意很特别,它有点象指针,但又不完全是,不过大家还是可以把它理解为一种类型安全的、面向对象的指针。(什么是类型安全和面向对象就不用讲了吧?)顺便提一句,有很多书上把Delegate翻译成代理,我觉得这样翻不够确切,翻译成“指代”更恰当些,道理上吻合,并且还符合它的本来意思――微软本来就是用Delegate来“取代指针”,所以叫“指代”,呵呵。