覆盖继承属性默认值的正确方法是什么?

Ven*_*sky 0 c#

我有两个类,一个继承自另一个,我想覆盖子类中父类的默认值。

这是正确的做法吗?

public class Foo 
{
    public virtual string FooValue { get; set; } = "foo default value";
}

public class Bar : Foo 
{
    private string _fooValue = "bar default value";
    public override string FooValue 
    {
        get => _fooValue;
        set => _fooValue = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我看到有人使用DefaultValue属性,但不确定正确的方法是什么。

Mac*_*cke 5

在Bar的构造函数中设置,不需要virtual:

public class Bar : Foo 
{
    public Bar() {
        FooValue = "bar default value";
    }
}
Run Code Online (Sandbox Code Playgroud)