Domanda

Non posso sovraccaricare GetEnumerator () come

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

{

  .... some code

}
È stato utile?

Soluzione

No. È sufficiente creare un metodo normale, ad esempio

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

Altri suggerimenti

Puoi proporre un sovraccarico per il metodo GetEnumerator , ma non può far parte dell'implementazione IEnumerable .

GetEnumerator non accetta parametri.

Che ne dici di un metodo di estensione?

cioè:.


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

Ma cosa stai cercando di fare in questo "sovraccarico"? Se si desidera unire quei due array di T, IEnumerable ha già un numero di metodi che accettano metodi. Assicurati di non reinventare la ruota!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top