C # перечисляет как int - PullRequest
3 голосов
/ 10 июня 2009

Есть ли способ сделать мои enum дефолтными как ints? так что мне не нужно печатать его везде? В основном я использую его как список константных значений.

Ответы [ 3 ]

8 голосов
/ 10 июня 2009

номер

Если вам действительно нужна группа int-констант, используйте статический класс:

public static class Constants {
  public const int ConstantOne = 42;
  public const int ConstantTwo = 42;
  ...
}
7 голосов
/ 10 июня 2009

Нет, если вы объявили enum, их значением по умолчанию является enum, и для получения значения int требуется явное приведение. Если вы используете enum в качестве константных значений, почему бы не использовать константные значения? Если вам нужно некоторое разделение, вы можете создать структуру, которая не содержит ничего, кроме этих константных значений.

1 голос
/ 03 июля 2009

Если вы действительно хотите это сделать, вы можете создать метод расширения, подобный следующему для перечислений

public static int ToInt(this Enum obj)
{
   return Convert.ToInt32(obj);
}

Тогда вы можете использовать его следующим образом

var t = Gender.male;
var r = t.ToInt();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...