我一直在IEnumorator中试图建立一个允许我使用foreach语句快速插入从JSON格式化字符串中提取的大量行到这些嵌套对象中。 Applines类专门由String Get/Set语句组成。实现IEnumerator/IEnumerable与IDispose错误
出于某种原因,我收到三个指向类头的错误。我无法理解 a)为什么以及如何实现IDisposable b)为什么要让编译器不同意我的返回类型。
'AppAnnieImport'没有实现接口成员'System.Collections.IEnumerable.GetEnumerator()'。 'AppAnnieImport.GetEnumerator()'不能实现'System.Collections.IEnumerable.GetEnumerator()',因为它没有匹配的返回类型'System.Collections.IEnumerator'。
'AppAnnieImport' 不实现接口成员 'System.IDisposable.Dispose()'
'AppAnnieImport' 不实现接口成员 'System.Collections.Generic.IEnumerator.Current'。 'AppAnnieImport.Current'无法实现'System.Collections.Generic.IEnumerator.Current',因为它没有匹配的返回类型'AppLines'。
public class AppAnnieImport : IEnumerator<AppLines>, IEnumerable<AppLines>
{
public int code { get; set; }
public DateTime end_date { get; set; }
public string vertical { get; set; }
public string granularity { get; set; }
public string device { get; set; }
public List<AppLines> AppLine { get; set; }
private int position;
//IEnumerator and IEnumerable require these methods.
public IEnumerator<AppLines> GetEnumerator()
{
return (IEnumerator<AppLines>)this;
}
//IEnumerator
public bool MoveNext()
{
position++;
return (position < AppLine.Count);
}
//IEnumerable
public void Reset()
{ position = 0; }
//IEnumerable
public object Current
{
get { return (AppLine.ToArray())[position] ; }
}
}
将光标放在'的IEnumerator',然后按Ctrl +。并选择实现接口。基本上你需要实现泛型和非泛型版本的'GetEnumerator'。 –
没有什么可以增加编译器对问题的解释。 –
我不会让IEnumerable和IEnumerator这两个类都实现IEnumerable,如果你需要一个自定义的IEnumerator,使它成为一个单独的类。 –