Приведите int к перечислению в C #

Это помогло мне получить ответ. Есть два файла php.ini, которые, в моем случае, для wamp. Один находится под папкой php, а другой - в папке C:\wamp\bin\apache\Apachex.x.x\bin. При подключении к SQL через функцию sqlsrv_connect мы ссылаемся на файл php.ini в папке apache. Добавьте следующий файл (в соответствии с вашей версией) к этому файлу:

extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll

2936
задан alexyorke 29 October 2014 в 17:57
поделиться

6 ответов

От строки:

YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);
// the foo.ToString().Contains(",") check is necessary for enumerations marked with an [Flags] attribute
if (!Enum.IsDefined(typeof(YourEnum), foo) && !foo.ToString().Contains(","))
  throw new InvalidOperationException($"{yourString} is not an underlying value of the YourEnum enumeration.")

От интервала:

YourEnum foo = (YourEnum)yourInt;

Обновление:

От числа Вы можете также

YourEnum foo = (YourEnum)Enum.ToObject(typeof(YourEnum) , yourInt);
3520
ответ дан Micha Wiedenmann 30 October 2014 в 03:57
поделиться
  • 1
    I' m, просто оставив это здесь в случае, если это помогает кому-то:) – Joel 31 May 2014 в 00:47

Просто бросок это:

MyEnum e = (MyEnum)3;

можно проверить, находится ли это в диапазоне с помощью Перечисление. IsDefined:

if (Enum.IsDefined(typeof(MyEnum), 3)) { ... }
826
ответ дан Matt Hamilton 30 October 2014 в 03:57
поделиться
  • 1
    Я don' t означают сталкиваться обороны, следовательно " честно спасибо за Ваш input" потому что я действительно благодарен за Ваш вход. Без парней как Вы, парней как я wouldn' t получают ответы. Последняя вещь, которую я хочу, для Вас, чтобы НЕ дать мне совет. Однако я действительно комментировал Теневой Wizard' s отвечают моими причинами и предметами первой необходимости почему его идеи (и Ваш дальнейший комментарий к его ответу) wouldn' t подходить для меня и всего I' m выполнение вот то же. – Thomas Clayson 3 November 2011 в 01:58

Возьмите следующий пример:

int one = 1;
MyEnum e = (MyEnum)one;
111
ответ дан Media 30 October 2014 в 03:57
поделиться
  • 1
    @StephenCleary: Действительно это отличается - Control.BeginInvoke, (насколько я видел), единственное исключение. – Richard 4 January 2011 в 08:33

Иногда у вас есть объект типа MyEnum . Как

var MyEnumType = typeof(MyEnumType);

Затем:

Enum.ToObject(typeof(MyEnum), 3)
26
ответ дан 22 November 2019 в 19:47
поделиться

Вам просто нравится ниже:

int intToCast = 1;
TargetEnum f = (TargetEnum) intToCast ;

, Чтобы удостовериться, что Вы только бросаете правильные значения †‹вЂ‹ и что можно выдать исключение иначе:

int intToCast = 1;
if (Enum.IsDefined(typeof(TargetEnum), intToCast ))
{
    TargetEnum target = (TargetEnum)intToCast ;
}
else
{
   // Throw your exception.
}

Примечание, что использование IsDefined является дорогостоящим и еще больше, чем просто кастинг, таким образом, это зависит от Вашей реализации, чтобы решить использовать его или нет.

1
ответ дан 22 November 2019 в 19:47
поделиться
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;

namespace SamplePrograme
{
    public class Program
    {
        public enum Suit : int
        {
            Spades = 0,
            Hearts = 1,
            Clubs = 2,
            Diamonds = 3
        }

        public static void Main(string[] args)
        {
            //from string
            Console.WriteLine((Suit) Enum.Parse(typeof(Suit), "Clubs"));

            //from int
            Console.WriteLine((Suit)1);

            //From number you can also
            Console.WriteLine((Suit)Enum.ToObject(typeof(Suit) ,1));
        }
    }
}
1
ответ дан 22 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: