我正在学习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();
         }谢谢

解决方案 »

  1.   

    这是显式接口实现...因为...1.IEnumerable<T>接口继承自IEnumerable接口...
    2.IEnumerable<T>接口和IEnumerable接口都有一个名为GetEnumerator()的方法成员...
    3.不允许存在两个相同签名的成员...
    4.所有接口成员必须实现...所以必须有一个显式实现...
      

  2.   

    谢谢vrhero,我正在仔细思考你所说,但是还有些不明白,难道这里必须实现IEnumerable吗?只实现IEnumberable<T>不行吗?