我正在学习C#高级编程,在泛型这个地方搞不懂,以下是代码:
public class LinkedList<T> : IEnumerable<T>
{
private LinkedListNode<T> first; public LinkedListNode<T> First
{
get { return first; }
} private LinkedListNode<T> last; public LinkedListNode<T> Last
{
get { return last; }
} public LinkedListNode<T> AddLast(T node)
{
LinkedListNode<T> newNode = new LinkedListNode<T>(node);
if (first == null)
{
first = newNode;
last = first;
}
else
{
last.Next = newNode;
last = newNode;
}
return newNode;
} #region IEnumerable<T> Members public IEnumerator<T> GetEnumerator()
{
LinkedListNode<T> current = first; while (current != null)
{
yield return current.Value;
current = current.Next;
}
} #endregion #region IEnumerable Members IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}最后这一截代码是什么作用?
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}谢谢
public class LinkedList<T> : IEnumerable<T>
{
private LinkedListNode<T> first; public LinkedListNode<T> First
{
get { return first; }
} private LinkedListNode<T> last; public LinkedListNode<T> Last
{
get { return last; }
} public LinkedListNode<T> AddLast(T node)
{
LinkedListNode<T> newNode = new LinkedListNode<T>(node);
if (first == null)
{
first = newNode;
last = first;
}
else
{
last.Next = newNode;
last = newNode;
}
return newNode;
} #region IEnumerable<T> Members public IEnumerator<T> GetEnumerator()
{
LinkedListNode<T> current = first; while (current != null)
{
yield return current.Value;
current = current.Next;
}
} #endregion #region IEnumerable Members IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}最后这一截代码是什么作用?
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}谢谢
2.IEnumerable<T>接口和IEnumerable接口都有一个名为GetEnumerator()的方法成员...
3.不允许存在两个相同签名的成员...
4.所有接口成员必须实现...所以必须有一个显式实现...