C# C夏普零件2的多态性问题>&书信电报;
我试图使用此方法生成我的字符,但我得到了错误: 可访问性不一致:返回类型“consoleapplication1.Enemigo”的可访问性小于 方法“consoleapplication1.poringbuilder.makeporing()” 这是我第一次遇到这个错误,我真的不知道该怎么办,我尝试了很多不同的方法,但我得到了同样的错误plz help>< 命名空间控制台应用程序1 { 公共静态类PoringBuilder { 公共静态Enemigo MakePoring() { 返回新的Enemigo(15,0,30,15,false,false,“Poring”); } } 这是另一门课 命名空间控制台应用程序1 { Enemigo类:个人 { 公共Enemigo(智力伤害、智力防御、智力HP、智力MP、智力闪避、智力计数器、字符串名称) :基础(伤害、防御、生命、MP、逃避、反击、名义) { } } } 这是我所有班级的家长 命名空间控制台应用程序1 { 类人物 { 公共财产损害; 公共防卫C# C夏普零件2的多态性问题>&书信电报;,c#,polymorphism,C#,Polymorphism,我试图使用此方法生成我的字符,但我得到了错误: 可访问性不一致:返回类型“consoleapplication1.Enemigo”的可访问性小于 方法“consoleapplication1.poringbuilder.makeporing()” 这是我第一次遇到这个错误,我真的不知道该怎么办,我尝试了很多不同的方法,但我得到了同样的错误plz help>< 命名空间控制台应用程序1 { 公共静态类PoringBuilder { 公共静态Enemigo MakePoring() { 返回新的En
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=新列表();
添加(PoringBuilder.MakePoring())
我希望我足够精确>。
另外,对于其他构造函数…为什么要重写传入的值?Poring()是默认构造函数。您需要至少用一个不做任何事情的主体声明它:
public Poring()
{
}
如果需要,您可以在主体中执行默认初始化,不过最好是按照Anon的答案链接到另一个构造函数形成一个主体。因为您并没有真正向Enemigo类添加任何内容,所以我会选择工厂方法之类的东西。子类化通常用于向某些内容添加行为 public static class PoringBuilder { public static Enemigo MakePoring() { return new Enemigo(30, 10, 0, false, false, 15, "Poring"); } } 公共静态类PoringBuilder { 公共静态Enemigo MakePoring() { 返回新的Enemigo(30,10,0,false,false,15,“Poring”); } } 并称之为: EnemigosNoob.Add(PoringBuilder.MakePoring()); 添加(PoringBuilder.MakePoring());
您可以使用101010按钮将文本格式化为代码。我对您的问题感到困惑,但这似乎是在进行构造函数重载。您的空白构造函数和默认构造函数没有任何正文,这意味着您要么将其声明为抽象体,要么将其指定为空白正文,所以只需将{},这应该行得通。我试着说我会有大约10个角色,每个人都会有不同的身份,但我想我明白了。非常感谢。这就是我需要的。非常感谢 EnemigosNoob.Add(PoringBuilder.MakePoring());