Frage

Kann ich nicht überlasten GetEnumerator () wie

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

{

  .... some code

}
War es hilfreich?

Lösung

Nein. Erstellen Sie einfach eine normale Methode stattdessen z.

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

Andere Tipps

Sie können eine Überlastung für GetEnumerator Verfahren vorzuschlagen, aber es kann nicht Teil der IEnumerable Implementierung sein.

GetEnumerator keine Parameter übernehmen.

Wie wäre eine Erweiterung Methode?

das heißt:.


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);
...

Aber was wollen Sie in dieser „Überlast“ zu tun? Wenn Sie diese zwei Arrays von T zusammenführen möchten, hat IEnumerable bereits eine Reihe von Verfahren, die Methoden nehmen. Stellen Sie sicher, dass Sie nicht das Rad neu zu erfinden!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top