c# - 在 C# 中覆盖派生类中的常量

标签 c# inheritance constants

在 C# 中,常量可以在派生类中被覆盖吗?我有一组完全相同的类,除了一些常量值,所以我想创建一个定义所有方法的基类,然后只在派生类中设置相关常量。这可能吗?

我宁愿不只是将这些值传递给每个对象的构造函数,因为我希望增加多个类的类型安全性(因为对于具有不同常量的两个对象进行交互永远没有意义)。

最佳答案

如果您想覆盖它,它不是常量;)。尝试虚拟只读属性(或 protected setter )。

只读属性:

public class MyClass {
    public virtual string MyConst { get { return "SOMETHING"; } }
}
...
public class MyDerived : MyClass {
    public override string MyConst { get { return "SOMETHINGELSE"; } }
}

protected 二传手:

public class MyClass {
    public string MyConst { get; protected set; }

    public MyClass() {
        MyConst = "SOMETHING";
    }
}

public class MyDerived : MyClass {
    public MyDerived() {
        MyConst = "SOMETHING ELSE";
    }
}

关于c# - 在 C# 中覆盖派生类中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770437/

相关文章:

c# - 无法在 64 位操作系统上的 Visual Studio 中从 catch 设置下一条语句

c++ - 某种类型别名 : An empty derived class

c# - 强制从派生类外部调用基方法

C -- 通过 const 声明访问非常量

javascript - Nodejs 为什么常量应该是变量

下载电影的 C# 模式匹配

c# - 当我想要创建的类型具有不同的输入参数时,我可以使用工厂模式吗?

c# - 在 ASP.NET 页面中查找客户端位置

java - 面对构造函数静态 block 和代码块的执行顺序问题

c++ - c - 这 2 个 const 是什么意思?