问题描述
- C#集合问题,新手求教!
-
namespace Ch11CardLib
{
class Cards:CollectionBase
{
public void Add(Card newCard)
{
List.Add(newCard);
}
public void Remove(Card newCard)
{
List.Remove(newCard);
}
public Card this[int cardIndex]
{
get
{
return (Card)List[cardIndex];
}
set
{
List[cardIndex] = value;
}
}
///
///Utility method for copying card instances into another Cards
///instance-used in Deck.shuffle(). This implementation assumes that
///source and target collections are the same size.
///
public void CopyTo(Cards targetCards)
{
for (int index = 0; index < this.Count; index++)
{
targetCards[index] = this[index];
}
}
///
///Check to see if the Cards collection contains a particular card.
///This calls the Contains() method of the ArrayList for the collection,
///which you access through the InnerList Property.
///
public bool Contains(Card card)
{
return InnerList.Contains(card);
}
}
}这里实现add和remove方法为什么前面要加LIST.。这两个方法都不是静态方法啊????
解决方案
https://msdn.microsoft.com/zh-cn/library/system.collections.collectionbase_members(v=vs.80).aspx
List 获取一个 IList,它包含 CollectionBase 实例中元素的列表。
看清楚了。文档说的很清楚。只怪你懒
解决方案二:
代码好不整洁,建议整理一下,还有你代码并不完整,结合上下代码你就懂了,lLst其实只是IList接口的引用变量。
解决方案三:
你把完整代码写一下吧 或者给出CollectionBase的实现 你就这么写 有点看不懂
解决方案四:
这里的Cards继承自CollectionBase,CollectionBase这个抽象基类,实际上继承了IList,ICollection和IEnumerable三个接口,并且显式地实现了IList接口的Add()和Remove()等方法,另外提供了一个受保护的属性IList List以方便我们使用。所以这里的List是一个IList接口的引用变量。
解决方案五:
【关于网站收录问题,新手求教】
时间: 2024-11-02 13:32:28