int enum'a nasıl dönüştürülür?

C#'ta bir int nasıl bir enuma dönüştürülebilir?

Çözüm

Bir dizeden:

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.")

Bir int:

YourEnum foo = (YourEnum)yourInt;

Güncelleme:

Numaradan da şunları yapabilirsiniz

YourEnum foo = (YourEnum)Enum.ToObject(typeof(YourEnum) , yourInt);
Yorumlar (19)

Sadece at:

MyEnum e = (MyEnum)3;

Enum.IsDefined]1 kullanarak aralıkta olup olmadığını kontrol edebilirsiniz:

if (Enum.IsDefined(typeof(MyEnum), 3)) { ... }
Yorumlar (7)

Aşağıdaki örneği ele alalım:

int one = 1;
MyEnum e = (MyEnum)one;
Yorumlar (0)