多态性故障C Sharp第2部分>。

时间:2009-12-12 23:10:06

标签: c# polymorphism

即时尝试使用此方法制作我的角色,但我收到错误: 不一致的可访问性:返回类型'consoleapplication1.Enemigo'的可访问性低于 方法'consoleapplication1.poringbuilder.makeporing()' 它是第一次我得到这个错误,我真的不知道该怎么做,我尝试了很多不同的方法,但我得到了相同的错误PLZ帮助>。< 命名空间ConsoleApplication1 {     公共静态类PoringBuilder     {         public static Enemigo MakePoring()         {             返回新的Enemigo(15,0,30,15,假,假,“Poring”);         }     }

这是另一堂课 命名空间ConsoleApplication1 {     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 {     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;
    }
}

}

我正在这样的主程序上使用它 列出EnemigosNoob = new List(); EnemigosNoob.Add(PoringBuilder.MakePoring());

我希望我足够精确>。<

3 个答案:

答案 0 :(得分:0)

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

另外,对于你的其他构造函数......为什么要覆盖传入的值?

答案 1 :(得分:0)

Poring()是您的默认构造函数。你需要用至少一个无用的身体来声明它:

public Poring()
{
}

如果需要,您可以在正文中执行默认初始化,但最好通过按照Anon的答案链接到另一个构造函数来处理。但是,在任何一种情况下,您都必须使用这两个大括号{ }来形成一个主体。

答案 2 :(得分:0)

由于你并没有真正为Enemigo类添加任何东西,我会选择工厂方法。子类化通常适用于您想要添加某些内容的行为。

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

并称之为:

EnemigosNoob.Add(PoringBuilder.MakePoring());