当我尝试返回浮点数数组时,出现此错误:
无法将类型'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;
}
}
}
答案 0 :(得分:4)
您的方法Process
被定义为返回float
,但是return语句从中返回float []
。根据需要,将方法签名更改为
public static float[] Process(Vertex[] vertices)
或从方法中返回单个float
。
答案 1 :(得分:1)
C#是类型安全的语言,意味着您不能将浮点值转换为浮点数数组,也不能将浮点数数组转换为浮点数值。 在您的代码中,您尝试将float数组转换为float值,因此必须将方法定义中的代码更改为:
public static float[] Process(Vertex[] vertices)