GetEnumeratorのオーバーロード
-
06-07-2019 - |
質問
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にはメソッドを取得するメソッドが既にいくつかあります。車輪を再発明していないことを確認してください!
所属していません StackOverflow