2015-04-18 84 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

謝謝!我認爲,由於這個答案有多簡單,我得到了低估,但我已經合法地一直在努力。 – greyspace

+0

反對看起來是懲罰性的,如果你正在學習,那麼我認爲這是一個完全合法的問題。 –

+0

@T McKeown:實際上,導致我首先刪除字符串標識符的問題又回來了。以下內容不打印任何內容。 debug.log函數根本不顯示任何內容。 公共課羊:動物{動物} {動物} {動物名} =「綿羊測試」; public override void Attack() Debug.Log(animalName); } } – greyspace

相關問題