Saltar al contenido

cómo convertir int a uint

Solución:

En primer lugar, debe verificar el tipo de su valor. Puedes hacerlo llamando obj.GetType() método (ya sea en su código directamente o en la ventana Inmediato).

Si esto es int entonces puedes hacer:

uint u = (uint) (int) obj;

Tenga en cuenta que se diferencia de su elenco porque yesos para int y luego convierte para uint mientras intentabas emitir para uint. int No puede ser enviado a uint y es por eso que obtienes el InvalidCastException. int puede ser solo convertido para uint. Es confuso que ambos conversión y emitir los operadores tienen el mismo aspecto en el código: u = (uint) x.

Lo más fácil que puede hacer es llamar a un método específico desde Convert clase:

uint u = Convert.ToUInt32(x);

El problema es ese int se almacena como object. Int deriva del objeto pero uint no deriva de int entonces no puedes lanzar int almacenado como object para uint. Primero tienes que lanzarlo a int y luego a uint porque ese elenco es válido. Inténtalo tú mismo:

object o = 5;//this is constant that represents int, constant for uint would be 5u
uint i = (uint)o;//throws exception

Pero esto funciona:

object o = 5;
int i = (int)o;
uint j = (uint)i;

o

object o = 5;
uint i = (uint)(int)o; //No matter how this looks awkward 
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *