C# C夏普零件2的多态性问题>&书信电报;

C# C夏普零件2的多态性问题>&书信电报;,c#,polymorphism,C#,Polymorphism,我试图使用此方法生成我的字符,但我得到了错误: 可访问性不一致:返回类型“consoleapplication1.Enemigo”的可访问性小于 方法“consoleapplication1.poringbuilder.makeporing()” 这是我第一次遇到这个错误,我真的不知道该怎么办,我尝试了很多不同的方法,但我得到了同样的错误plz help>< 命名空间控制台应用程序1 { 公共静态类PoringBuilder { 公共静态Enemigo MakePoring() { 返回新的En

我试图使用此方法生成我的字符,但我得到了错误: 可访问性不一致:返回类型“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 { 类人物 { 公共财产损害; 公共防卫

    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());