C# 并非所有代码路径都返回值//返回void
我试图实现一个数组(文件)的快速排序,但在这样做的过程中,我得到了两个错误。我将在代码中对它们进行注释C# 并非所有代码路径都返回值//返回void,c#,arrays,object,return-value,quicksort,C#,Arrays,Object,Return Value,Quicksort,我试图实现一个数组(文件)的快速排序,但在这样做的过程中,我得到了两个错误。我将在代码中对它们进行注释 static int[] quick(int[] array, int start, int end) // 'quick(int[], int, int)': Not all code paths return a value (i have tried to return this.) { int i3; if
static int[] quick(int[] array, int start, int end)
// 'quick(int[], int, int)': Not all code paths return a value (i have tried to return this.)
{
int i3;
if (start < end)
{
i3 = Partition(array, start, end);
quick(array, start, i3 - 1);
quick(array, i3 + 1, end);
}
}
static int Partition(int[] array, int start, int end)
{
int temp;
int p = array[end];
int i3 = start - 1;
for (int j = start; j <= end - 1; j++)
{
if (array[j] <= p)
{
i3++;
temp = array[i3];
array[i3] = array[j];
array[j] = temp;
}
}
temp = array[i3 + 1];
array[i3 + 1] = array[end];
array[end] = temp;
return i3 + 1;
}
Console.WriteLine("The file sorted via a Quick Sort is: ");
foreach (int q1 in f)
Console.Write(q1 + " ");
return quick;
// Since 'Program.Main(string[])' returns void, a returner keyword must not be followed by an object expression..
}
静态int[]快速(int[]数组、int开始、int结束)
//'quick(int[],int,int)':并非所有代码路径都返回值(我已尝试返回此值。)
{
int i3;
如果(开始<结束)
{
i3=分区(数组、开始、结束);
快速(阵列、启动、i3-1);
快速(阵列,i3+1,结束);
}
}
静态int分区(int[]数组,int开始,int结束)
{
内部温度;
int p=数组[结束];
int i3=开始-1;
对于(int j=start;j),您将quick
定义为返回int[]
,但您实际上没有从该方法返回任何内容。看起来该方法应该是void
。我们需要查看其他错误的更多代码,但看起来分区之后的代码实际上不包含在方法中,但如果它实际上位于void Main
中,则您可以使用它“您实际上不会返回任何内容。@juharr我明白了,我现在已将分区方法放在quick方法中,并且在尝试返回quick(将要分析的文件)时-get 1)“无法将方法组'quick'转换为类型'int[]”,2)“静态局部函数不能包含引用”