在派生类中重写常量在C# [英] Overriding constants in derived classes in C#

查看:407
本文介绍了在派生类中重写常量在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆