我一直在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,使它成爲一個單獨的類。 –