Si j'ai un object
et que je sais qu'il s'agit en fait d'un entier encadré, je peux simplement le recalculer en int comme ceci :
object o = GetSomethingByName("foo");
int i = (int)o;
Cependant, je ne sais pas si la valeur est un entier. Je sais seulement qu'elle peut être assignée à un entier. Par exemple, il pourrait s'agir d'un byte
et le code ci-dessus renverrait InvalidCastException
dans ce cas. Au lieu de cela, je devrais faire ceci :
object o = GetSomethingByName("foo");
int i = (int)(byte)o;
La valeur peut également être un short
ou quelque chose d'autre qui peut être assigné à un int
. Comment puis-je généraliser mon code pour traiter tous ces cas (sans traiter chaque possibilité séparément) ?