繁体   English   中英

c#和类中的嵌套枚举

[英]nested enum in c# and classes

我听说在C#中无法enum 那么如何将以下结构转换为类层次结构或其他内容。 所以我希望课程充当enum

在此输入图像描述

嵌套类和const字段

class Cat1
{
    public const int Public = 1;
    public class Private
    {
        public const int Abc = 2;
        public const int Mno = 3;
        public const int Pqr = 4;
    }
}
public class Cat1
{
  public enum Publicpart
  {
     Xyz
  }

  private enum Privatepart
  {
     Abc, Mno, Pqr
  }
}

然后你就可以这样称呼它

Cat1.Publicpart.Xyz

或者如果你有私人访问

Cat1.Privatepart.Abc

你可以使用hirerchy作为类结构,每个类都有自己的枚举属性

如果你想通过枚举解决这个问题,你应该重新考虑,因为第一个枚举类别向我表示某种“可见性”概念,而第二个类别仅对具有可见性“公共”的实例有效。

用这样的方法解决你的问题怎么样:

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM