C# 创建c数组时出现意外的符号错误

C# 创建c数组时出现意外的符号错误,c#,arrays,class,unity3d,C#,Arrays,Class,Unity3d,我创建了一个名为Mood的类,它包含一个int、一个Vector4和一个float 我尝试使用以下代码将其中三个对象放置在一个数组中: 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

我创建了一个名为Mood的类,它包含一个int、一个Vector4和一个float

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

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

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

基本上,初始化语句应该在构造函数中。不能在类声明的顶层有赋值语句。对不起,您能解释一下您的意思吗?我有一个构造函数在我的类问题编辑,包括class@JonSkeet很好的问题,oyu能举个例子说明如何重新编写类吗?你有一个构造函数,但你没有告诉我们哪个类包含p1,p2,p3和moods—您需要将初始化移动到该类的构造函数中。