IEnumerator aos genéricos.
-
11-07-2019 - |
Pergunta
eu tenho algumas classes que eu estou tentando passar a usar os genéricos
Class1: Curva
essa classe tem o seguinte código:
public class Curve : IEnumerable
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator(); // Calls non-interface method
}
public RTRatePointEnumerator GetEnumerator()
{
return new RTRatePointEnumerator(_hash);
}
Classe 2:
public class CurvePointEnumerator : IEnumerator
O que é a conversão recomendado destas duas classes de usar genéricos
Solução
Você não especificou o tipo que está sendo retornado do recenseador. mas eu vou adivinhar com base nos nomes É RTRatePoint e CurvePoint. Gostaria de mudar o código para ser o seguinte
class Curve: IEnumerable<RTRatePoint> {
IEnumerator<RTRatePoint> IEnumerable<RTRatePoint>.GetEnumerator() {
return GetEnumerator();
}
public RTRatePointEnumerator GetEnumerator() {
return new RTRatePointEnumerator(_hash);
}
}
class CurvePointEnumerator : IEnumerator<CurvePoint>
Um item que pode te enganar é que IEnumerator
void IDispose.Dispose() {
// Nothing to see here
}
Outras dicas
IEnumerable<T> and IEnumerator<T>
Gah, ele engoliu o meu código