Приведение от int к Enum все еще возвращает int - PullRequest
0 голосов
/ 18 января 2012

Я безуспешно пытаюсь привести из типа int к перечислению:

ENUM

public enum ePriceType{
    Fixed = 1,
    Variable = 2
}

CAST

public int priceTypeA = 2;
public ePriceType priceTypeB = (ePriceType)priceTypeA;

Код работает нормально, но по какой-то причине, когда вы проверяете значение priceTypeB, он по-прежнему показывает int, а не ePriceType, что вызывает ошибку далее по коду.

Кто-нибудь может помочь?

ОБНОВЛЕНИЕ

По правде говоря, эта проблема намного сложнее с клиентской стороны веб-службы.Я попытался упростить это, как указано выше, но явно не сработало, и я не уверен, как проще всего объяснить всю проблему :( В любом случае, спасибо за ваши ответы

Ответы [ 2 ]

3 голосов
/ 18 января 2012

когда вы проверяете значение priceTypeB, оно по-прежнему показывает int

Не знаю, как вы проверяете это значение и где вы видите int, но следующая проверка работает отлично:

public enum ePriceType
{
    Fixed = 1,
    Variable = 2
}

class Program
{
    static void Main()
    {
        int priceTypeA = 2;
        ePriceType priceTypeB = (ePriceType)priceTypeA;
        if (priceTypeB == ePriceType.Variable)
        {
            Console.WriteLine("Variable");
        }
    }
}
0 голосов
/ 18 января 2012

Попробуйте это:

public class EnumProvider
{
   public enum ePriceType{
  Fixed = 1,
  Variable = 2
}

var a = Enum.GetName(typeof(EnumProvider.ePriceType), 1);

здесь будет "Исправлено"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...