我的代碼是:實現IEnumerable。錯誤。
using System;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
namespace IEnumerable
{
public class MyEnumerable<T> : IEnumerable<T>
{
public MyEnumerable(T[] items)
{
this.items = items;
}
public IEnumerator<T> GetEnumerator()
{
return new NestedEnumerator(this);
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
// The enumerator definition.
class NestedEnumerator : IEnumerator<T>
{
public NestedEnumerator(MyEnumerable<T> coll)
{
Monitor.Enter(coll.items.SyncRoot);
this.index = -1;
this.coll = coll;
}
public T Current
{
get { return current; }
}
object IEnumerator.Current
{
get { return Current; }
}
public bool MoveNext()
{
if (++index >= coll.items.Length)
{
return false;
}
else
{
current = coll.items[index];
return true;
}
}
public void Reset()
{
current = default(T);
index = 0;
}
public void Dispose()
{
try
{
current = default(T);
index = coll.items.Length;
}
finally
{
Monitor.Exit(coll.items.SyncRoot);
}
}
private MyEnumerable<T> coll;
private T current;
private int index;
}
private T[] items;
}
public class EntryPoint
{
static void Main()
{
MyEnumerable<int> integers = new MyEnumerable<int>(new int[] { 1, 2, 3, 4 });
foreach (int n in integers)
{
Console.WriteLine(n);
}
}
}
}
我在執行這段代碼,但我得到一個錯誤。任何人都可以幫我解決這個錯誤嗎?請幫忙。 我的錯誤是:
1 - > 'IEnumerable的' 是 '命名空間',但使用像 '類型'
2 - > 'IEnumerable.MyEnumerable' 不實現接口成員「System.Collections中。 IEnumerable.GetEnumerator()」。 'IEnumerable.MyEnumerable.GetEnumerator()'無法實現'System.Collections.IEnumerable.GetEnumerator()',因爲它沒有匹配的返回類型'System.Collections.IEnumerator'。
有意詳細說明您收到的錯誤嗎? (如果有人很好奇,下面是上述代碼的IDEone:http://www.ideone.com/RHu4V) –
來吧,讓我們知道錯誤是什麼。我們來幫忙,不參加面試! –
錯誤:'IEnumerable'是一個'命名空間',但用於'類型' –