2015-04-18 1 views
-1

Я получаю вышеуказанную ошибку в следующем коде:Неожиданный символ '=»в объявлении члена класса, структуры или интерфейса

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

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

} 

Оказывается, что я не могу назначить переменные вне метода. Это так? Это означало бы, что мне нужно будет создать метод «AssignStats()», чтобы назначить HPMax, мощность, защиту, скорость и т. Д. Я думаю, что, наверное, понятно, почему я хочу избежать добавления этого добавленного шага к коду каждый раз, когда я вызываю животный объект.

Или я пропустил что-то очевидное?

+2

'String animalName =" Испытание овец ";'. Вам всегда нужно указать тип для переменных-членов. – Mephy

+0

Да, вам не хватает чего-то очевидного. Вы объявляете член 'animalName' без указания типа. –

+0

@Mephy Смешно. Огромное спасибо. Я думал, что, поскольку он унаследовал animalName, мне не нужно было это делать. Так очевидно. Так жаль. – greyspace

ответ

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. 
} 
+1

Спасибо! Я полагаю, что из-за того, насколько простым был этот ответ, я получаю downvotes, но я законно работаю над этим навсегда. – greyspace

+0

пустые голоса кажутся карательными, если вы учитесь, я думаю, что это совершенно законный вопрос. –

+0

@T McKeown: На самом деле проблема, которая заставляет меня сначала удалить идентификатор строки, вернулась. Ниже ничего не печатается. Функция debug.log ничего не отображает. общественный класс Овцы: животные { string animalName = "Тест овец"; public override void Attack() { Debug.Log (animalName); } } – greyspace

Смежные вопросы

 Смежные вопросы