C# out parameter in extension method
在扩展方法中,我收到一个错误,即我的"out"参数在当前上下文中不存在。我假设这意味着扩展方法不能有"out"参数,但这没有在文档中指定。如果有人能澄清一下,我将不胜感激!
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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参数。您需要指定 out 参数的类型。所以更改代码
1 | public static int customMax(this int[] data, out index) |
到
1 | public static int customMax(this int[] data, out int index) |
它应该都可以工作
您错过了在
它应该是:
1 | public static int customMax(this int[] data, out int index) |
您可能对另一个问题感兴趣,关于做这种事情的可读性。扩展方法中的第一个 ("this") 参数无法使用 ref 和 out?