Итак, я работаю с перечислениями в первый раз на C#, но я не думаю, что это будет продолжаться, поскольку я просто понял, что у вас есть гибкость, как у вас на Java.Расширенные перечисления в C#
Например, эквивалент того, что я хочу сделать в Java будет выглядеть примерно так:
public enum Days {
Mon("Monday"), Tue("Tuesday"), Wed("Wednesday"), Thu("Thursday", 93), Fri, Sat("Saturday", 44), Sun;
private String longName;
private int other;
Days() {}
Days(String longName) {
this.longName = longName;
}
Day(String longName, int somethingElse) {
this(longName);
this.other = somethingElse;
}
@Override
public String toString() {
return this.longName + ", " + this.other;
}
}
Есть в любом случае я могу сделать это в C#? Насколько я могу судить, с перечислениями вы можете сделать только что-то вроде следующего:
public enum Days { Mon=1, Tue=2, Wed=3 }
Это не имеет строго быть перечисление, просто действовать как перечисление Java.
Вы можете использовать пользовательские атрибуты. – crashmstr
Итак, вы хотите, чтобы каждое значение перечисления называлось длинным именем? –
Перечисления Java и C# выглядят одинаково, но они совершенно разные: перечисления Java являются, по существу, классами, где каждая константа перечисления является экземпляром. Переписи C, напротив, являются константами порядкового типа, такими как 'int'. –