日期:2014-05-19  浏览次数:20806 次

高手们来呀,提个简单问题请吃饭,给大分
public   class   Cards:CollectionBase
        {
                public   void   Add(Card   newCard)
                {
                        List.Add(newCard);
                }

                public   void   Remove(Card   oldCard)
                {
                        List.Remove(oldCard);
                }

                public   Cards()
                {
                }

                public   Card   this[int   cardIndex]
                {
                        get
                        {
                                return   (Card)List[cardIndex];
                        }
                        set
                        {
                                List[cardIndex]   =   value;
                        }
                }
}
说明:Card是一个纸牌类
看代码,回答问题,高手不要吝啬啊:
                public   Card   this[int   cardIndex]
                {
                        get
                        {
                                return   (Card)List[cardIndex];
                        }
                        set
                        {
                                List[cardIndex]   =   value;
                        }
                }
俺看不明白的就是上面这段看似定义属性又像构造函数的东西,谁能告诉俺它是属性定义还是构造函数(俺感觉像属性定义,可是public   Card   this[int   cardIndex]太让俺迷糊了),谁能给俺讲讲集合的索引在这是怎么回事?List[cardIndex];又是怎么回事,不是说List是IList接口的一个属性吗,它后面跟一个索引又是怎么回事?

------解决方案--------------------
public Card this[int cardIndex] 是定义索引器
List[cardIndex]实际上应该是base.List[cardIndex],List是基类的一个属性