Ienumerator to generics.
-
11-07-2019 - |
문제
제네릭 사용으로 이동하려는 몇 가지 수업이 있습니다.
클래스 1 : 곡선
이 클래스에는 다음 코드가 있습니다.
public class Curve : IEnumerable
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator(); // Calls non-interface method
}
public RTRatePointEnumerator GetEnumerator()
{
return new RTRatePointEnumerator(_hash);
}
Class 2:
public class CurvePointEnumerator : IEnumerator
이 두 클래스를 제네릭 사용으로 권장되는 전환은 무엇입니까?
해결책
열거 자에서 반환되는 유형을 지정하지 않았습니다. 그러나 나는 그것이 rtratepoint와 curvepoint라는 이름을 기반으로 추측 할 것입니다. 코드를 다음으로 변경합니다
class Curve: IEnumerable<RTRatePoint> {
IEnumerator<RTRatePoint> IEnumerable<RTRatePoint>.GetEnumerator() {
return GetEnumerator();
}
public RTRatePointEnumerator GetEnumerator() {
return new RTRatePointEnumerator(_hash);
}
}
class CurvePointEnumerator : IEnumerator<CurvePoint>
당신을 여행 할 수있는 항목 중 하나는 그 ienumerator입니다.u003CT> 추가적으로 큐브 포인트 테너 메이터와 rtratepointenumerator는 dispose method가 추가되어야합니다. 아마도이 방법은 거의 비어있을 수 있습니다. 당신이 전에 아무것도 처분하지 않았다면, 지금은 지금 필요하지 않습니다.
void IDispose.Dispose() {
// Nothing to see here
}
다른 팁
IEnumerable<T> and IEnumerator<T>
가, 그것은 내 코드를 삼켰다
제휴하지 않습니다 StackOverflow