簡體   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