返回浮点数组时出现错误

When returning a array of floats I get an error

当我尝试 return 一个浮点数数组时,出现了这个错误:

Cannot implicitly convert type 'float[]' to 'float'

我正在使用 OpenTK 在 C# 中制作 2d 游戏引擎 我正在处理顶点 class,但我不断收到错误并且卡住了。

我试过这个:

return data[vertices.Length * Size];

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenTK;

namespace RacerEngine
{
    public class Vertex
    {
        private const int Size = 2;

        private Vector2 position;
        public Vector2 Position
        {
            get
            {
                return position;
            }
            set
            {
                position = value;
            }
        }

        public Vertex(Vector2 position)
        {
            this.position = position;
        }

        public static float Process(Vertex[] vertices)
        {
            float[] data = new float[vertices.Length * Size];

            for(int i = 0; i < vertices.Length; i++)
            {
                data[i] = vertices[i].position.X;
                data[i + 1] = vertices[i].position.Y;
            }

            return data;
        }
    }
}

您的方法 Process 被定义为 return 一个 float,但是您的 return 语句 return 是一个 float []。根据您的需要,将您的方法签名更改为

public static float[] Process(Vertex[] vertices)

或return方法中的单个float

C# 是类型安全的语言,这意味着您不能将浮点值转换为浮点数组,或者不能将浮点数组转换为浮点值。 在您的代码中,您试图将浮点数组转换为浮点值,因此您必须将方法定义中的代码更改为:

public static float[] Process(Vertex[] vertices)