首页 > 解决方案 > 覆盖继承属性的默认值的正确方法是什么?

问题描述

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

这是正确的做法吗?

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;
    }
}

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

标签: c#

解决方案


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

public class Bar : Foo 
{
    public Bar() {
        FooValue = "bar default value";
    }
}

推荐阅读