是否可以在继承的类中公开具有相同名称的受保护常量?

时间:2016-02-03 23:01:32

标签: c#

以下是一个例子:

-v

不幸的是,这不会编译,因为它抱怨我无法在非静态上下文中访问静态常量。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

base关键字仅适用于非静态上下文,就像this关键字一样。 this关键字引用“此实例作为其自己的类型”,base关键字引用“此实例作为其基类类型”。您不能使用base来引用“此类的基类。”

您需要使用MyAbstractThing,因为您处于静态环境中。

namespace MyProject
{
    public abstract class MyAbstractThing
    {
        protected const uint Percentage = 42;
    }

    public sealed class MyThing : MyAbstractThing
    {
        public new const uint Percentage = MyAbstractThing.Percentage;
        //                                 ^^^^^^^^^^^^^^^
    }
}