尝试在我的反向函数中使用数组时无法从 void 转换为 bool

Cannot convert from void to bool when trying to use an array in my reverse function

正如标题所述,我正在尝试使用我自己的反转函数反转浮点数组。

反向函数不能return一个变量。程序的逻辑可能不对,所以我可能处理错了。

现在我得到的错误是它无法从 void 转换为 bool。

public static void reverse(float[] floatArr)
{
    for (int i = 0; i < floatArr.Length; i++)
    {
        Console.WriteLine(floatArr[i]);
    }

    for (int i = 0; i < floatArr.Length / 2; i++)
    {
        float tmp = floatArr[i];
        floatArr[i] = floatArr[floatArr.Length - i - 1];
        floatArr[floatArr.Length - i - 1] = tmp;
    }
}

static void Main(string[] args)
{
    float[] floatArr = new float[5] { 5.6F, 6.4F, 4.2F, 3.6F, 8.4F };
    Console.WriteLine(reverse(floatArr)); // cannot convert from void to bool
}

我知道我可以通过将反向函数设为浮点函数并因此 return 一个浮点数来解决这个问题,但问题表明它不能 return 一个值。

您正在尝试打印 returns 类型为 void 的函数。

Console.WriteLine(reverse(floatArr)); // cannot convert from void to bool -> this is correct error

您应该首先调用 reverse(floatArr),如果打算打印,那么您应该在数组上循环以打印值。如下:

reverse(floatArr);
foreach(var val in floatArr)
{
    Console.WriteLine(val);
}

这将在控制台的不同行中打印值。如果您想在一行中打印所有值,请使用下面的行(归功于@LeonidVasilyev)

Console.WriteLine(string.Join(",", floatArr));