回 帖 发 新 帖 刷新版面

主题:[原创]索引器问题

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace Ch12CardLib
{
   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; 
              

           }
       
           
       }

       public void CopyTo(Cards targetCards)
       {
           for (int index = 0; index < this.Count; index++)
           { targetCards[index] = this[index]; }

       }
       public bool Contains(Card card)
       {
           return InnerList.Contains(card);
       }


   }
}
 

这个是自定义的一个Card集合类Cards,其中定义了索引器,但在调用时会出现BUG, 
 
错误指示  List[cardIndex] = value; 未处理ArgumentOutOfRangeException
索引超出范围,必须为非负值并小于集合大小,参数名index。
请高手帮忙!

回复列表 (共1个回复)

沙发

看你怎么调用了
如果的确不存在cardIndex对应的值,就应该抛出异常

我来回复

您尚未登录,请登录后再回复。点此登录或注册