扩展方法中的 C# out 参数
C# out parameter in extension method
在扩展方法中,我收到一条错误消息,指出我的 '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;
}
扩展方法可以有 out 参数。您需要指定输出参数的类型。所以更改代码
public static int customMax(this int[] data, out index)
至
public static int customMax(this int[] data, out int index)
应该一切正常
您没有在 out
参数上指定类型。
它应该是:
public static int customMax(this int[] data, out int index)
您可能对另一个问题感兴趣,关于做这种事情的可读性。 Impossible to use ref and out for first ("this") parameter in Extension methods?
在扩展方法中,我收到一条错误消息,指出我的 '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;
}
扩展方法可以有 out 参数。您需要指定输出参数的类型。所以更改代码
public static int customMax(this int[] data, out index)
至
public static int customMax(this int[] data, out int index)
应该一切正常
您没有在 out
参数上指定类型。
它应该是:
public static int customMax(this int[] data, out int index)
您可能对另一个问题感兴趣,关于做这种事情的可读性。 Impossible to use ref and out for first ("this") parameter in Extension methods?