IEnumerator zu Generika.
-
11-07-2019 - |
Frage
ich habe ein paar Klassen, die ich zur Verwendung von Generika zu bewegen versuchen
Class1: Kurve
Diese Klasse hat den folgenden Code:
public class Curve : IEnumerable
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator(); // Calls non-interface method
}
public RTRatePointEnumerator GetEnumerator()
{
return new RTRatePointEnumerator(_hash);
}
Klasse 2:
public class CurvePointEnumerator : IEnumerator
Was ist die empfohlene Umwandlung dieser beiden Klassen zur Verwendung von Generika
Lösung
Sie nicht angeben, der Typ aus dem enumerator zurückgegeben werden. aber ich werde auf die Namen erraten basiert es ist RTRatePoint und Stützpunkt. Ich würde den Code ändern die folgende
seinclass Curve: IEnumerable<RTRatePoint> {
IEnumerator<RTRatePoint> IEnumerable<RTRatePoint>.GetEnumerator() {
return GetEnumerator();
}
public RTRatePointEnumerator GetEnumerator() {
return new RTRatePointEnumerator(_hash);
}
}
class CurvePointEnumerator : IEnumerator<CurvePoint>
Ein Element, das Sie nach oben auslösen kann, ist, dass IEnumerator
void IDispose.Dispose() {
// Nothing to see here
}
Andere Tipps
IEnumerable<T> and IEnumerator<T>
gah, es geschluckt meinen Code