2015-04-30 3 views
1

В Java у меня есть:EnumSet в C#, когда требуется в groupation на уровне

public enum MyEnum{ 

    Value1, 
    Value2, 
    Value3, 
    //so on 
    } 

А класс, который будет иметь свойство:

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-new-to -c – Alex

ответ

1

C# перечисления - это константы, перечисления Java - классы. Для достижения функциональности похожа на Java вы можете:

  1. создать полномасштабные классы C# и/или:
  2. использования побитового логики и/или:
  3. использовать отражение и/или
  4. Enum.GetValues (typeof (...))
+0

Вы забыли номер 5) Используйте статический класс EnumExtensions, возможно, с частными статическими полями, содержащими дополнительную информацию ион. –

 Смежные вопросы

  • Нет связанных вопросов^_^