2008-12-01 68 views
0

我有我試圖移動到使用泛型IEnumerator泛型。

幾類

的Class1:曲線

該類具有下面的代碼:

public class Curve : IEnumerable 

    IEnumerator IEnumerable.GetEnumerator() 
    { 
     return GetEnumerator(); // Calls non-interface method 
    } 

    public RTRatePointEnumerator GetEnumerator() 
    { 
     return new RTRatePointEnumerator(_hash); 
    } 

2類:

public class CurvePointEnumerator : IEnumerator 

這兩個類別推薦使用的泛型是什麼

回答

1

沒有指定由枚舉返回類型。但我會根據它的名字RTRatePoint和CurvePoint來猜測。我會改變的代碼是可以發覺你是IEnumerator的<牛逼>還實現IDisposable所以CurvePointEnumerator和RTRatePointEnumerator需要有添加Dispose方法如下

class Curve: IEnumerable<RTRatePoint> { 
    IEnumerator<RTRatePoint> IEnumerable<RTRatePoint>.GetEnumerator() { 
    return GetEnumerator(); 
    } 
    public RTRatePointEnumerator GetEnumerator() { 
    return new RTRatePointEnumerator(_hash); 
    } 
} 

class CurvePointEnumerator : IEnumerator<CurvePoint> 

一個項目。雖然這種方法可能幾乎是空的。如果您之前沒有處置任何東西,原因是現在沒有必要。

void IDispose.Dispose() { 
    // Nothing to see here 
} 
+0

我會在這裏放置處理方法。 。 – leora 2008-12-01 03:06:40

0

IEnumerable<T> and IEnumerator<T>

GAH,它吞噬我的代碼

+0

代碼的其餘部分保持不變嗎? – leora 2008-12-01 02:52:00