C# GetEnumerator的重载
我不能像这样重载GetEnumerator()吗C# GetEnumerator的重载,c#,collections,overloading,C#,Collections,Overloading,我不能像这样重载GetEnumerator()吗 IEnumerator IEnumerable.GetEnumerator(T[]val1,T[]val2) { ……一些代码 } GetEnumerator不接受参数。GetEnumerator不接受参数。否。只需创建一个普通方法即可,例如 IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) { // some code } IEnumerator
IEnumerator IEnumerable.GetEnumerator(T[]val1,T[]val2)
{
……一些代码
}
GetEnumerator不接受参数。GetEnumerator不接受参数。否。只需创建一个普通方法即可,例如
IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
// some code
}
IEnumerator MyCustomEnumerator(T[]val1,T[]val2){
//一些代码
}
否。只需创建一个普通方法即可,例如
IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
// some code
}
IEnumerator MyCustomEnumerator(T[]val1,T[]val2){
//一些代码
}
您可以为GetEnumerator
方法提议重载,但它不能成为IEnumerable
实现的一部分。您可以为GetEnumerator
方法提议重载,但不能成为IEnumerable
实现的一部分。扩展方法如何
i、 e:
公共静态类IEnumeratorExtensions
{
公共静态IEnumerator GetEnumerator(此IEnumerable ie,
T[]val1,T[]val2)
{
//你的代码在这里
}
}
...
字符串[]s1;
字符串[]s2;
var qry=来自新字符串[]{“1”,“2”}
选择s;
qry.GetEnumerator(s1,s2);
...
但是在这个“超负荷”中你想做什么?如果您想合并这两个T数组,IEnumerable已经有了许多采用方法的方法。确保你没有重新发明轮子 扩展方法怎么样 i、 e:
公共静态类IEnumeratorExtensions
{
公共静态IEnumerator GetEnumerator(此IEnumerable ie,
T[]val1,T[]val2)
{
//你的代码在这里
}
}
...
字符串[]s1;
字符串[]s2;
var qry=来自新字符串[]{“1”,“2”}
选择s;
qry.GetEnumerator(s1,s2);
...
但是在这个“超负荷”中你想做什么?如果您想合并这两个T数组,IEnumerable已经有了许多采用方法的方法。确保你没有重新发明轮子
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);
...