在派生类中重写常量在C# [英] Overriding constants in derived classes in C#
问题描述
在C#中可以恒定在派生类中重写?我有一组都是一样的吧一些常量类,所以我想创建一个基类,定义了所有的方法,然后就坐落在派生类相关的常量。这可能吗?
In C# can a constant be overridden in a derived class? I have a group of classes that are all the same bar some constant values, so I'd like to create a base class that defines all the methods and then just set the relevant constants in the derived classes. Is this possible?
我宁愿不只是通过这些值到每个对象的构造函数,因为我想多个类的添加类型安全(因为它永远不会让。感觉与不同常数进行交互)两个对象
I'd rather not just pass in these values to each object's constructor as I would like the added type-safety of multiple classes (since it never makes sense for two objects with different constants to interact).
推荐答案
,如果你想忽略它不是一个常数)尝试虚拟只读属性(或受保护的setter)...
it's not a constant if you want to override it ;) try a virtual read-only property (or protected setter)...
只读属性。
public class MyClass {
public virtual string MyConst { get {return "SOMETHING"; }}
}
...
public class MyDerived : MyClass {
public override string MyConst { get { return "SOMETHINGELSE"; }}
}
受保护的二传手
Protected Setter
public class MyClass {
public string MyConst { get; protected set; }
public MyClass() {
MyConst = "SOMETHING";
}
}
public class MyDerived : MyClass {
public MyClass() {
MyConst = "SOMETHING ELSE";
}
}
这篇关于在派生类中重写常量在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!