如何实现在子类中const field哪些必须覆盖,我正在使用.net 4, C#
因为我有许多类all have a const field(具有不同的值)称为'pName'.
所以我想使用接口或抽象类或somthing作为父级并强制这些类覆盖它.
这是CONST领域
你不能override一个const; 也可以将它声明为static和override它在那里.您可以做的是重新声明它,但这并不健壮 - 因为使用哪个版本取决于您要求的(完全在编译时 - 与多态完全无关):
public new const int Foo = 12;
Run Code Online (Sandbox Code Playgroud)
我建议你使用virtual或abstract属性:
public virtual int Foo { get { return 4; } } // subclasses *can* override
public abstract int Foo { get; } // subclasses *must* override
Run Code Online (Sandbox Code Playgroud)
并且override:
public override int Foo { get { return 12; } }
Run Code Online (Sandbox Code Playgroud)