Possible en double:
Iterating through an enumeration in Silverlight?Comment passer Enum comme argument
je suis venu avec une petite fonction pratique qui me fait le compte d'un ENUM (je sais que ce ne sera pas travailler correctement avec tous les enums). Plutôt que de coder en dur l'Enum dans la fonction de sorte que je doive écrire une fonction seprate pour chaque Enum avec laquelle je veux l'utiliser, je voulais passer l'enum comme argument mais j'ai de la difficulté à trouver comment le faire.
Voici le code:
private enum MyColors { Red, Green, Blue }
private Int32 GetEnumCount()
{
Int32 i = 0;
while (Enum.IsDefined(typeof(MyColors), (MyColors)i))
{
i++;
}
return i;
}
MISE À JOUR
je suis venu avec ce que la réponse à la fin:
private Int32 GetEnumCount(Type enumType)
{
Int32 i = 0;
while (Enum.IsDefined(enumType, i))
{
i++;
}
return i;
}
Btw, la deuxième réponse la plus élevée sur cette page est celle que je recommande. – Noldorin
Cette approche ne fonctionnerait que lorsque les valeurs enum sont contiguës. Un enum attribué 'Flags 'aurait typiquement des trous dans les entiers utilisés, donc cette approche échouerait. Peut-être pourriez-vous expliquer pourquoi vous en avez besoin? – AnthonyWJones