2012-11-26 10 views
5

Ho Person.cs che sarà implementato dalla classe Player.cs. La persona ha la proprietà ExperienceLevelType.implementazione della proprietà force su classi derivate

Voglio forzare tutte le classi derivate per implementare la propria versione della proprietà ExperienceLevelType.

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

public abstract Player:Person 
{ 
    public override ExperienceLevel Experience 
    { 

    } 
} 
+1

Forse potresti dichiararlo 'astratto'? – LightStriker

risposta

22

Questo è quello che abstract è per:

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

Se si desidera forzare le classi derivate ad implementare la proprietà da sé e allo stesso tempo fornire alcuni scaffold riutilizzabili per aiutarli, esporre lo scaffolding come protected membri all'interno di Person.

+0

ottimo. Come è possibile sovrascrivere la proprietà Experience nella classe child (Player)? – user1765862

+1

Allo stesso modo della proprietà virtuale. –

0

Si potrebbe fare Person un'interfaccia (e lo hanno impliment niente) o si può fare Person implementare un'interfaccia personalizzata IPerson che ha la vostra proprietà

Problemi correlati