0
我在我的代碼中遇到了令人沮喪的錯誤,它不允許我爲創建的類實現IEnumerable。讓我職位的代碼,因爲它總是會更有意義,這是在這裏很短...如何使用IEnumerator的回調函數實現IEnumerable? C#
[Serializable]
internal class GroupNode : IGroupNode, IEnumerable<ISceneNode>
{
public string Name
{
get;
private set;
}
const int NumberOfChildren = 8;
#region Member variables
private IList<ISceneNode> children = new List<ISceneNode>(NumberOfChildren);
#endregion
public IEnumerator<ISceneNode> GetEnumerator()
{
return children.GetEnumerator(); //***
}
...
}
和接口:
public interface IGroupNode : ISceneNode, IEnumerable<ISceneNode>
{
void AddChild(ISceneNode child);
}
最後,錯誤消息(它實際上是相當描述性的):
Error 1 'Project.SceneGraphCore.GroupNode' does not implement interface member 'System.Collections.IEnumerable.GetEnumerator()'. 'Project.SceneGraphCore.GroupNode.GetEnumerator()' cannot implement 'System.Collections.IEnumerable.GetEnumerator()' because it does not have the matching return type of 'System.Collections.IEnumerator'. C:\Users\Ian\documents\visual studio 2012\Projects\ISceneGraph\SceneGraph\GroupNode.cs 11 20 SceneGraph
剛纔我在這裏做錯了什麼?我所做的只是取得我的集合類,它基於列表,並返回List的GetEnumerator方法。但是,然後,在錯誤消息中,它說我沒有實現IEnumerable ...我認爲返回GetEnumerator就足夠了,但在這種情況下我不能說。