在派生类上强制实现属性

时间:2012-11-26 19:26:59

标签: c#

我有Person.cs,它将由Player.cs类实现。 Person具有ExperienceLevelType属性。

我想强制所有派生类实现它自己的ExperienceLevelType属性版本。

public abstract Person
{
    public enum ExperienceLevel { Kid, Teenager}
    public virtual ExperienceLevel Experience {get; set;}
}

public abstract Player:Person
{
    public override ExperienceLevel Experience
    {

    }
}

3 个答案:

答案 0 :(得分:25)

这就是abstract的用途:

public abstract class Person
{
    public enum ExperienceLevel { Kid, Teenager}
    public abstract ExperienceLevel Experience { get; set; }
}

如果要强制派生类自己实现属性,同时提供一些可重用的脚手架来帮助它们,请将脚手架作为protected内的Person成员公开。

答案 1 :(得分:0)

你可以让Person成为一个界面(并且没有任何暗示)或者你可以让Person实现一个具有你的财产的自定义界面IPerson

答案 2 :(得分:0)

您需要做的就是将方法声明为抽象方法,它强制子类实现该方法。