<p>A partir d’un int :</p>
<pre><code class="lang-auto">YourEnum foo = (YourEnum)yourInt;
</code></pre>
<p>A partir d’une chaine :</p>
<pre><code class="lang-auto">YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString);
// La verification foo.ToString().Contains(",") est necessaire pour
// les enumerations marquees avec un attribut [Flags].
if (!Enum.IsDefined(typeof(YourEnum), foo) && !foo.ToString().Contains(","))
{
throw new InvalidOperationException(
$"{yourString} is not an underlying value of the YourEnum enumeration."
);
}
</code></pre>
<p>Dynamiquement (type inconnu a la compilation) :</p>
<pre><code class="lang-auto">Type enumType = ...;
// NB : Les enums peuvent specifier un type de base autre que 'int'
int numericValue = ...;
object boxedEnumValue = Enum.ToObject(enumType, numericValue);
</code></pre>