类属性成员是用来对类中的数据进行封装的(例如,字段成员),从OOP的角度出发,信息隐蔽有助于程序的灵活性,所以使用属性来暴露某些信息就是为了遵从这个原则,比如在你的代码中对name进行了封装,那么就可以控制用户对name的访问的方式(虽然你的代码没有体现着一点,对于用户来说,name这个字段是透明的,你可以在get和set中对name进行某些加工,这比简单地将name暴露给客户是不是更好呢?)
索引器的声明,可以让你的类看起来像一个数组一样使用,在你的代码中,假设有一个保存许多name的集合(数组),可是如何取得某一个name呢?传统的语言可能要使用一个成员方法取得整个集合,然后从集合(数组)中取得数据,是用类的索引器,你就可以简单的取得某个name,就像你的代码所示。客户的调用可能是这样的:
MyClass myClass=new MyClass();
string name=myClass["whois"]; 
//如果是数组的话,要得到第三个name:string name=myClass[2];
//这样的话你的索引器声明可能是这样的: public string this[int index]{...}

解决方案 »

  1.   

    niwalker()以前好像没见过,今天看见两个你回答的贴,获益匪浅,学习.
      

  2.   

    简单属性就跟以前的public的东西一样,我感觉,不过可以控制访问和设置,并且可以在访问和设置的时候做许多触发事件阿之类的冬冬。
    至于索引我觉得看看hashtable 和arraylist,sortedlist你就知道了!
    可以使你在阵列状对象中快速定位你索要的值,而不用来一次遍历