私のコードは次のとおりです。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.IEnumerator'の一致する戻り値の型がないため、 'System.Collections.IEnumerable.GetEnumerator()'を実装できません。
エラーが発生しましたか? (誰かが興味がある場合は、上記のコードのIDEoneをご覧ください:http://www.ideone.com/RHu4V) –
さあ、エラーの内容をお知らせください。私たちは就職の面接に出席するのではなく、助けに来ています! –
エラー:「IEnumerable」は「名前空間」ですが、「タイプ」のように使用されます –