Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展方法中的C#out参数_C#_Extension Methods_Out - Fatal编程技术网

扩展方法中的C#out参数

扩展方法中的C#out参数,c#,extension-methods,out,C#,Extension Methods,Out,在扩展方法中,我收到一个错误,即我的“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] >

在扩展方法中,我收到一个错误,即我的“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;
}
publicstaticintcustommax(此int[]数据,out索引)
{
int max=数据[0];
指数=0;
for(int i=1;i最大值){
max=数据[i];
}
}
返回最大值;
}

扩展方法可以有out参数。您需要指定out参数的类型。所以改变代码

public static int customMax(this int[] data, out index)


它应该都能工作

您没有在
out
参数上指定类型。 应改为:

    public static int customMax(this int[] data, out int index)

关于做这类事情的可读性,你可能对另一个问题感兴趣

你忘了为
索引
参数添加类型(我想是int),你还忘了设置通过
索引
返回的实际值。谢谢-我注意到了这一点,打算删除这个问题,但你太快了!
    public static int customMax(this int[] data, out int index)