如何实现一个const字段,在subClasses中必须覆盖.net 4

Sco*_*合理论 3 c# oop c#-4.0

如何实现在子类中const field哪些必须覆盖,我正在使用.net 4, C#

因为我有许多类all have a const field(具有不同的值)称为'pName'.

所以我想使用接口或抽象类或somthing作为父级并强制这些类覆盖它.

这是CONST领域

Mar*_*ell 6

你不能override一个const; 也可以将它声明为staticoverride它在那里.您可以做的是重新声明它,但这并不健壮 - 因为使用哪个版本取决于您要求的(完全在编译时 - 与多态完全无关):

public new const int Foo = 12;
Run Code Online (Sandbox Code Playgroud)

我建议你使用virtualabstract属性:

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)