Помощь с перечислениями и Enum.Parse - PullRequest
1 голос
/ 05 мая 2011

Я новичок в enum.

У меня есть это перечисление:

public enum Categories
{
    Animals,
    Animations,
    Accessories,
    Apearance,
    Clothing,
    Gadgets,
    Land,
    Scripts,
    Vehicles,
    Weapons,
    Other
}

Затем у меня есть эта переменная: private Categories Category; Я пытаюсь проанализировать ввод пользователя (строка), чтобы Category было равно правильному перечислению.

this.Category = Enum.Parse(Categories ,cat);

И я получаю эту ошибку:

'Product.Categories' is a 'type' but is used like a 'variable'

Я надеюсь, вы понимаете, что я пытаюсь сказать.

Ответы [ 2 ]

4 голосов
/ 05 мая 2011

Чтобы получить объект Type для использования с методом, подобным Enum.Parse(), используйте оператор typeof с именем типа. Вам также необходимо выполнить приведение от object (которое оно возвращает) к вашему перечислению:

this.Category = (Categories) Enum.Parse(typeof(Categories), cat);
3 голосов
/ 05 мая 2011

Передайте typeof(Categories) вместо Categories и добавьте приведение, например:

this.Category = (Categories)Enum.Parse(typeof(Categories), cat);

Предполагается, что this.Category имеет тип Categories и требуется, потому что Enum.Parse возвращает значение типа object.

...