在 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/