Вопрос

Не могу ли я перегрузить GetEnumerator () следующим образом

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

{

  .... some code

}
Это было полезно?

Решение

Нет.Просто создайте вместо этого обычный метод, например

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

Другие советы

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

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

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

т. е.:


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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top