返回浮点数组时出现错误
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)
当我尝试 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)