Перегрузка GetEnumerator - PullRequest
       6

Перегрузка GetEnumerator

1 голос
/ 23 октября 2009

Не могу ли я перегрузить GetEnumerator () как

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

{

  .... some code

}

Ответы [ 4 ]

3 голосов
/ 23 октября 2009

Нет. Вместо этого просто создайте нормальный метод, например

IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
    // some code
}
2 голосов
/ 23 октября 2009

Вы можете предложить перегрузку для метода GetEnumerator, но он не может быть частью реализации IEnumerable.

1 голос
/ 23 октября 2009

GetEnumerator не принимает параметры.

0 голосов
/ 23 октября 2009

Как насчет метода расширения?

т.е:.


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 уже имеет ряд методов, которые принимают методы. Убедитесь, что вы не изобретаете велосипед!

...