2009-10-23 61 views
1

能的不我過載的GetEnumerator()之類重載的GetEnumerator

IEnumerator<T> IEnumerable<T>.GetEnumerator<T> (T[] val1,T[] val2) 

{ 

    .... some code 

} 

回答

3

編號只需要創建一個正常的方法,例如,

IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) { 
    // some code 
} 
+0

謝謝你完成了你所說的。 – udana 2009-10-23 12:29:21

1

的GetEnumerator不帶參數。

2

你可以提出一個過載GetEnumerator方法,但它不能是IEnumerable實現的一部分。

+0

感謝Romain Verdier – udana 2009-10-23 12:30:08

0

擴展方法如何?

即:


public static class IEnumeratorExtensions 
{ 
    public static IEnumerator<T> GetEnumerator<T>(this IEnumerable<T> ie, 
     T[] val1, T[] val2) 
    { 
     //your code here 
    } 
} 

... 
string[] s1; 
string[] s2; 

var qry = from s in new string[]{"1", "2"} 
      select s; 

qry.GetEnumerator(s1, s2); 
... 

但什麼是你想在這個「過載」呢?如果你想合併T的兩個數組,IEnumerable已經有了一些採用方法的方法。確保你沒有重新發明輪子!