Перегрузка 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 не принимает параметры.
Как насчет метода расширения?
т. е.:
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 уже есть несколько методов, которые принимают методы.Убедитесь, что вы не изобретаете велосипед заново!
Не связан с StackOverflow