Je dois utiliser cette énumération dans mon application C#, mais elle ne me permettra pas d'utiliser ces valeurs. Lorsque je spécifie le type en tant que uint, je peux utiliser la valeur -1, et quand je spécifie int je ne peux pas utiliser les 2 dernières valeurs. Existe-t-il un moyen d'utiliser le mot clé non contrôlé ici pour me permettre de définir toutes ces valeurs? Ces valeurs proviennent d'une source externe, donc je ne peux pas les changer.Comment utiliser des valeurs dangereuses dans une énumération?
internal enum MyValues : int
{
value1 = -1,
value2 = 0,
value3 = 0x80000000,
value4 = 0xFFFFFFFF
}
L'utilisation d'un type de données 64 bits n'est pas une option, j'utilise interop pour retourner une valeur 32bit. –
Si -1 et 0xFFFFFFFF sont techniquement la même chose en utilisant un uint, je suppose que je peux juste supprimer la valeur -1? –
@Jon: -1 n'existe pas lorsque vous utilisez uint - vous devez effectuer une conversion non contrôlée. –