Как преобразовать из System.Enum в базовое целое число?

Я заставил его работать, приведя c#-language к объекту, а затем к int:

public static class EnumExtensions
{
    public static int ToInt(this Enum enumValue)
    {
        return (int)((object)enumValue);
    }
}

Это csharp некрасивый и, вероятно, не c# лучший способ. Я буду продолжать enum возиться с этим, чтобы посмотреть, смогу enums ли я придумать что-нибудь enumerations получше ....

РЕДАКТИРОВАТЬ: как typeconverting раз собирался опубликовать, что type-conversion Convert.ToInt32 (enumValue) также c-sharp работает, и заметил, что c#-language MartinStettner превзошел enums меня в этом.

public static class EnumExtensions
{
    public static int ToInt(this Enum enumValue)
    {
        return Convert.ToInt32(enumValue);
    }
}

Тест:

int x = DayOfWeek.Friday.ToInt();
Console.WriteLine(x); // results in 5 which is int value of Friday

РЕДАКТИРОВАТЬ c-sharp 2: В комментариях кто-то enum сказал, что это работает typeconverting только в C# 3.0. Я только typeconverting что протестировал это в VS2005, и c#-language это сработало:

public static class Helpers
{
    public static int ToInt(Enum enumValue)
    {
        return Convert.ToInt32(enumValue);
    }
}

    static void Main(string[] args)
    {
        Console.WriteLine(Helpers.ToInt(DayOfWeek.Friday));
    }

c#

enums

type-conversion

2022-10-14T07:08:51+00:00