我不能像
一样重载GetEnumerator()IEnumerator<T> IEnumerable<T>.GetEnumerator<T> ( T[] val1,T[] val2)
{
.... some code
}
答案 0 :(得分:3)
没有。只需创建一个普通的方法,例如
IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
// some code
}
答案 1 :(得分:2)
您可以为GetEnumerator
方法提出重载,但它不能成为IEnumerable
实现的一部分。
答案 2 :(得分:1)
GetEnumerator不接受参数。
答案 3 :(得分:0)
扩展方法怎么样?
即:
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已经有许多采用方法的方法。确保你没有重新发明轮子!