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;
}
}
我看到人们使用DefaultValue
属性,但不确定什么是正确的方法。
解决方案
在 Bar 的构造函数中设置,不需要 virtual:
public class Bar : Foo
{
public Bar() {
FooValue = "bar default value";
}
}
推荐阅读
- python - Discord.py 缺少 1 个必需的位置参数:'ctx'
- matlab - MATLAB:替换缺失的单元格条目而不替换空格
- javascript - spring boot和jsp中如何使用ajax实现csv或excel文件上传?
- c# - 需要在限制之前停止的上限金额
- shopify - 身份验证后重定向到未定义的链接
- python - 从函数外部调用在函数中创建的对象
- python - 获取 Pymongo Gridfs 上传到 MongoDB 数据库的上传进度
- winapi - 错误消息“在此范围内需要”是什么意思?
- python - 为 arm64 交叉编译 python 包
- vba - 在“动作”菜单中自动更改 PowerPoint 形状的超链接