【问题标题】:Unexpected symbol error when creating a c# array创建 c# 数组时出现意外的符号错误
【发布时间】:2014-06-13 12:25:10
【问题描述】:

我创建了一个类(称为 Mood),它包含一个 int、一个 Vector4 和一个浮点数。

我正在尝试使用以下代码将其中三个对象放在一个数组中:

static Vector4 p1 = new Vector4 (0,0,100,0);
static Vector4 p2 = new Vector4 (80,0,0,80);
static Vector4 p3 = new Vector4 (-80,0,0,80);

private Mood[] moods = new Mood[10];

moods[0] = new Mood (1,p1,0.0f);
moods[1] = new Mood (2,p2,0.0f);
moods[2] = new Mood (3,p3,0.0f);

但是,这给了我以下我不太明白的错误:

无效的等级说明符预期,或] 类、结构或接口成员声明中的意外符号新

谁能解释我做错了什么?

类看起来像这样

public class Mood
{
    public int id = 0;
    public Vector4 pos = null; 
    public float dist = 0.0f;

    public Mood(int inID, Vector4 inPos, float inDist)
    {
        id = inID;
        pos = inPo; 
        dist = inDist;
    }
} 

【问题讨论】:

  • 您的初始化语句基本上应该在构造函数中。你不能在类声明的顶层有一个赋值语句。
  • 抱歉,您能解释一下您的意思吗?我的班级中有一个构造函数(已编辑问题以包含班级)
  • @JonSkeet 很好的问题,oyu 可以举个例子来说明应该如何重新编写类吗?
  • 您在Mood 中有一个构造函数,但您没有告诉我们哪个类包含p1、p2、p3 和moods 的声明 - 它是that 类的构造函数,您需要将初始化移入。

标签: c# arrays class unity3d


【解决方案1】:

这个错误是由一个非常愚蠢的错误引起的。如果您正在使用类,则需要在尝试使用它们之前在脚本中声明/定义它们。在这种情况下,我将类放在脚本的底部,因此主类中的构造函数没有定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-12
    • 2012-11-17
    • 2017-01-18
    • 2012-08-13
    • 1970-01-01
    • 2012-10-14
    • 2019-09-23
    • 1970-01-01
    相关资源
    最近更新 更多