类,结构或接口成员声明中的意外符号`='

时间:2015-04-18 01:21:32

标签: c# unity3d

我收到以下代码的上述错误:

public class Sheep : Animal {
    //hpMax = 100;
    //power = 10;
    //defense = 10;
    //speed = 10;
    animalName = "Sheep Test";

    public override void Attack()
    {
        Debug.Log(animalName);
    }

}

似乎我无法在方法之外分配变量。是这样的吗?这意味着我必须创建一个" AssignStats()"分配HPMax,电源,防御,速度等的方法。我认为可能很清楚为什么我每次调用动物对象时都要避免在代码中添加这个添加的步骤。

或者我错过了一些明显的东西?

1 个答案:

答案 0 :(得分:5)

您缺少animalName属性的类型声明。

如果在基类中将animalName声明为受保护变量,则可以在构造函数中设置animalName,如下所示:

public Sheep() : base(){
   animalName = "Sheep Test";
}

这假定Animal类的定义与此类似:

public class Animal{
   protected string animalName;  //protected allows descendent classes 
                                 //direct access to the var.
}