2009-12-12 86 views
0

即時通訊設法使用這種方法來製作我的角色,但我得到的錯誤: 不一致的可訪問性:返回類型'consoleapplication1.Enemigo'不如 方法'consoleapplication1.poringbuilder。 makeporing()' 它第一次我得到這個錯誤,我真的不知道該怎麼做,我已經嘗試了很多不同的方式,但我得到同樣的錯誤PLZ幫助>。 < 命名ConsoleApplication1 { 公共靜態類PoringBuilder { 公共靜態Enemigo MakePoring(){ 返回 新Enemigo(15,0,30,15,假的,假的, 「波利」); } }Polymorphism Trouble C Sharp Part 2>。<

這是另一個類 命名ConsoleApplication1 { 類Enemigo:Personaje { 公共Enemigo(INT損害,詮釋的Defensa,詮釋HP,詮釋MP,布爾迴避,BOOL計數器,串農佈雷) :基地(損害的Defensa,HP,MP,迴避,計數器,農佈雷) {} } }

這是我的所有類的父類 命名ConsoleApplication1 { class Personaje { public int Damage; public int Defensa;

public int HP; 

    public int MP; 
    public bool Evade; 
    public bool Counter; 
    public string Nombre; 
    //public Personaje() { } 
    public Personaje(int Damage, int Defensa, int HP,int MP, bool Evade, bool Counter, string Nombre) 
    { 
     this.Damage = Damage; 
     this.Defensa = Defensa; 
     this.HP = HP; 
     this.MP = MP; 
     this.Evade = Evade; 
     this.Counter = Counter; 
     this.Nombre = Nombre; 
    } 
} 

}

和IM上使用它這樣 列表EnemigosNoob =新列表中的主程序(); EnemigosNoob.Add(PoringBuilder.MakePoring());

我希望我精確到足夠>。 <

+0

您可以使用101010按鈕格式化文本代碼。 – itowlson 2009-12-12 23:12:58

+0

我很困惑你的問題,但它看起來像你在做構造函數重載。 ü空白和默認的構造函數沒有任何身體,這意味着要麼你聲明它爲抽象或給它空白的身體,所以只需把{},它應該工作。 – Zinx 2009-12-12 23:17:46

回答

0

既然你沒有真的給Enemigo類增加任何東西,我會選擇一種工廠方法。當你想向某些東西添加行爲時,通常使用子類。

 
public static class PoringBuilder 
{ 
    public static Enemigo MakePoring() 
    { 
     return new Enemigo(30, 10, 0, false, false, 15, "Poring"); 
    } 
} 

,並稱之爲:

 
EnemigosNoob.Add(PoringBuilder.MakePoring()); 
+0

哇,這是我需要感謝你非常多 – Makenshi 2009-12-12 23:22:12

+0

什麼是喊? – 2009-12-12 23:24:34

+0

他顯然很興奮。 – 2009-12-13 11:05:21

0
public Poring() : this(/*your default values here*/) {} 

此外,爲您的其他構造函數...爲什麼你重寫傳入的值?

+0

好吧,我想說我將有大約10個字符,他們每個人都會有不同的地位,但我想我得到它非常感謝你 – Makenshi 2009-12-12 23:16:13

0

Poring()是您的默認構造函數。您需要聲明一下,至少,一個什麼都不做身體:

public Poring() 
{ 
} 

如果需要,可以在體內進行默認初始化,儘管這是最好的通過鏈接到另一個構造每匿名的回答處理。不管哪種情況,你都必須使用兩個大括號{ }來組成一個身體。