C# 初学者继承问题#

C# 初学者继承问题#,c#,inheritance,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.Wri

我正在学习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);
    }
}
之后,我当然想创建一个简单的子类来测试所有内容:

class Knight : Soldier
{
    level = 2;
    public void Ride(string name)
    {
        Console.WriteLine(name + " can ride a mount");
    }
}
但当我运行程序时,它会给我一个错误“当前上下文中不存在名称'level'

我知道我做错了什么,所以我搜索了一下,发现了一些情况,在这些情况下,用户可以像我一样覆盖一个属性,其他人在属性之前添加了“base.”。但两者都不起作用


提前感谢。

您需要该代码才能出现在课堂上,例如:

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

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

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

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

这不是一个属性,而是一个字段。