题
我不能像
一样重载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