返回浮点数数组时出现错误

时间:2019-03-30 08:13:45

标签: c# game-engine

当我尝试返回浮点数数组时,出现此错误:

  

无法将类型'float []'隐式转换为'float'

我正在使用OpenTK在C#中制作2D游戏引擎 并且我正在开发顶点类,但是我不断遇到错误并且陷入困境。

我已经尝试过了:

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;
        }
    }
}

2 个答案:

答案 0 :(得分:4)

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

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

或从方法中返回单个float

答案 1 :(得分:1)

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

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