在扩展方法中,我收到一条错误,指出我的'out'参数在当前上下文中不存在。我认为这意味着扩展方法不能有'out'参数,但是文档中没有指定。如果有人可以请澄清,我将不胜感激!
public static int customMax(this int[] data, out index)
{
int max = data[0];
index = 0;
for (int i = 1; i < data.Length; i++) {
if (data[i] > max) {
max = data[i];
}
}
return max;
}
答案 0 :(得分:5)
扩展方法可以有参数。您需要指定out参数的类型。所以改变代码
public static int customMax(this int[] data, out index)
到
public static int customMax(this int[] data, out int index)
它应该全部工作
答案 1 :(得分:0)
您错过了在out
参数上指定类型。
它应该是:
public static int customMax(this int[] data, out int index)
关于做这种事情的可读性,你可能会对另一个问题感兴趣。 Impossible to use ref and out for first ("this") parameter in Extension methods?