以下是一个例子:
-v
不幸的是,这不会编译,因为它抱怨我无法在非静态上下文中访问静态常量。有没有办法做到这一点?
答案 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;
// ^^^^^^^^^^^^^^^
}
}