C#: Impossible de convertir l'objet de type 'System.Int64' en type 'System.Int32'
J'ai le code comme suit:
Dictionary<object, object> dict = ...
Color = (int)dict.GetValue("color");
Quand je convertir la Couleur int, j'obtiens l'exception suivante:
Système.InvalidCastException: Impossible de convertir l'objet de type
'Système.Int64' en type 'System.Int32'.
Je ne sais pas pourquoi je ne peux pas juste lancer à partir d'un long int. Je sais pour un fait que la valeur est inférieure à 0xFFFFFF
(24 bits), car c'est une couleur.
J'ai essayé d'utiliser unchecked
mais cela n'a pas aide non plus.
L'erreur est l'erreur qui est, même si c'est un peu confus, car
(x)expr
est un cast ou conversion selon le type d'expression. La correction serait (int)(long)dict.GetValue("color")
qui correspond à (conversion)((cast)obj)
.
OriginalL'auteur Kostub Deshmukh | 2015-07-31
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord unbox la valeur que le dictionnaire est le type de valeur est
object
.OriginalL'auteur Matthew