如何覆盖抽象类的属性?

Gil*_*ams 1 c# properties abstract

我有一个名为的抽象类CharacterBase。在里面,我有一些属性。例如:

public int Level { get; set; }
Run Code Online (Sandbox Code Playgroud)

我有一个名为的类Character,它继承自CharacterBase。我希望能够以某种方式覆盖该Level属性,并成为我自己的属性。例如:

int level;

public (override?) int Level
{
    get
    {
        return level;
    }
    set
    {
        level = value;
        Console.WriteLine("The new level is " + level + ".");
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以覆盖此属性,并使其成为我自己的属性而不是抽象类的属性?

编辑:我标记Level为虚拟属性。这是正确的方法吗?

Him*_*ere 5

要覆盖属性,它必须在基类中是虚拟的,并在派生类中具有重写:

class CharacterBase {
    public virtual int Level {get;set;}
}

class Character : CharacterBase {
    public override int Level { /* */ }    
}
Run Code Online (Sandbox Code Playgroud)