質問

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はパラメーターを取りません。

拡張メソッドはどうですか?

i.e。:


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のこれら2つの配列をマージする場合、IEnumerableにはメソッドを取得するメソッドが既にいくつかあります。車輪を再発明していないことを確認してください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top