初学者继承问题C#

时间:2017-08-22 13:28:30

标签: c# inheritance

我正在学习所有关于C#的知识并且到达了继承部分。所以我首先编写了以下基类

class Soldier
{
    public int _health = 0;
    public int id = 0;
    public int level = 0;
    public string name = "soldier";

    public void Identify(int h, int ID, int lvl, string n)
    {
        Console.WriteLine("Health: " + h + "\nid: " + ID + "\nLevel: " + lvl + "\nName: " + n);
    }
}

在那之后我当然想创建一个简单的SubClass来测试一切:

class Knight : Soldier
{
    level = 2;
    public void Ride(string name)
    {
        Console.WriteLine(name + " can ride a mount");
    }
}

但是当我运行该程序时,它给出了一个错误“当前上下文中不存在名称'级别'。”

我知道我做错了所以我搜索了一下,找到了一些用户没有问题覆盖房产的问题,就像我做的那样,其他人添加了“基础”。在财产之前。但两者都没有奏效。

提前致谢。

2 个答案:

答案 0 :(得分:5)

这里发生的是您尝试在类定义中设置类级变量,这是不允许的。您只能在类范围内声明和初始化类变量。要在创建类时设置变量,需要在构造函数内设置它。

class Knight : Soldier
{
    public Knight() : base()
    {
       base.level = 2;
    }
    public void Ride(string name)
    {
        Console.WriteLine(name + " can ride a mount");
    }
}

答案 1 :(得分:3)

您需要将该代码放在类constructor中,例如:

class Knight : Soldier
{
    //class constructor here
    public Knight() 
    {
        level = 2;
    }

    public void Ride(string name)
    {
        Console.WriteLine(name + " can ride a mount");
    }
}