c#扩展方法中的out参数

本文关键字:out 参数 扩展 方法 | 更新日期: 2023-09-27 18:09:13

在扩展方法中,我收到一个错误,我的'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;
}

c#扩展方法中的out参数

扩展方法可以有我们的参数。您需要指定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)

有一些猜想你可能会对另一个问题感兴趣,关于做这种事情的可读性。不可能在扩展方法中使用ref和out作为第一个("this")参数?