You have to rethink whether you want to solve these problems with enumerations, because the first category of enumerations represents some kind of concept of "visibility", and the second category is valid only for instances with the visibility of "public".
How about solving a problem with something like this:
public enum Visibility { Public, Private } public abstract class VisibilityState { public Visibility Visibility { get; private set; } protected VisibilityState(Visibility visibility) { Visibility = visibility; } } public class PublicVisibilityState : VisibilityState { public PublicVisibilityState() : base(Visibility.Public) { } } public class PrivateVisibilityState : VisibilityState { public PrivateVisibilityState() : base(Visibility.Private) { } public OtherEnum OtherEnumState { get; set; } } public enum OtherEnum { Abc, Mno, Pqr }
saintedlama
source share