2015-04-30 30 views
1

在java中我有:EnumSet在C#中,當有需要groupation上水平

public enum MyEnum{ 

    Value1, 
    Value2, 
    Value3, 
    //so on 
    } 

和A類,將有一個屬性:

public abstract class MyClass{ 
public EnumSet<MyEnum> myEnum= EnumSet.noneOf(MyEnum.class); } 

但也有一個級的接口,基myEnum上級別:

public interface Level{ 


public EnumSet<MyEnum> LEVEL0 = EnumSet.of(Value1, 
               Value2, 
               //etc;} 
    public EnumSet<MyEnum> LEVEL1 = EnumSet.of(Value3, 
                Value4, 
                //etc;} 

還有一些用於在myEnum使用等克隆()的功能,的addAll() 。 我應該如何處理這些來自C#視角的案例?

+1

你可能想看看http://stackoverflow.com/questions/469287/c-sharp-vs-java-enum-for-those-newto -c – Alex

回答

1

C#枚舉是常量,Java枚舉是類。爲了實現類似於Java功能,您可以:

  1. 建立完全成熟的C#類和/或:
  2. 使用逐位邏輯和/或:
  3. 使用反射和/或
  4. Enum.GetValues (typeof(...))
+0

您忘記了編號5)使用靜態EnumExtensions類,可能帶有私有靜態字段,其中包含額外的信息離子。 –