即时尝试使用此方法来制作我的角色,但我得到错误:不一致的可访问性:返回类型'consoleapplication1.Enemigo'比方法'consoleapplication1.poringbuilder.makeporing()'更少可访问它是我第一次得到此错误,我真的不知道该怎么做,我已经尝试了很多不同的方法,但我得到同样的错误plz help> . <namespace ConsoleApplication1 {public static class PoringBuilder {public static Enemigo MakePoring(){return new Enemigo(15,0,30, 15,虚假,虚假,“Poring”); }}
这是另一个类命名空间ConsoleApplication1 {class Enemigo:Personaje {public Enemigo(int Damage,int Defensa,int HP,int MP,bool Evade,bool Counter,string Nombre):base(Damage,Defensa,HP,MP,Evade,Counter ,Nombre){}}}
这是我所有类命名空间的父级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;
}
}
}
并且我在主程序上使用它,如List EnemigosNoob = new List(); EnemigosNoob.Add(PoringBuilder.MakePoring());
我希望我足够精确> . <
3 回答
既然你没有在Enemigo类中添加任何东西,我会选择工厂方法 . 子类化通常适用于您想要添加某些内容的行为 .
并称之为:
Poring()是您的默认构造函数 . 你需要用至少一个无用的身体来声明它:
如果需要,您可以在正文中执行默认初始化,但最好通过按照Anon的答案链接到另一个构造函数来处理 . 但是,在任何一种情况下,你必须使用这两个括号
{ }
来形成一个主体 .另外,对于你的其他构造函数...为什么要覆盖传入的值?