toint32 sirve que para int16 entre diferencia convertir convert c# integer typeconverter

c# - sirve - Convirtiendo a int16, int32, int64, ¿cómo sabe cuál elegir?



int16 range (6)

Probar repetidamente TryParse () no tiene sentido, ya tienes un campo declarado. No puedes cambiar de opinión a menos que hagas ese campo de tipo Object. No es Buena idea.

Cualquier dato que el campo representa tiene un significado físico. Es una edad, un tamaño, un conteo, etc. Las cantidades físicas tienen restricciones realistas en su rango. Elija el tipo int que puede almacenar ese rango. No trates de arreglar un desbordamiento, sería un error.

A menudo tengo que convertir un valor recuperado (generalmente como una cadena) - y luego convertirlo a un int. Pero en C # (.Net) tiene que elegir int16, int32 o int64. ¿Cómo sabe cuál elegir cuando no sabe qué tan grande será el número recuperado?


Si solo estamos hablando de un par de números, elegir el más grande no hará una diferencia notable en el uso general de ram y simplemente funcionará. Si está hablando de muchos números, necesitará usar TryParse () sobre ellos y descubrir el tipo de letra int más pequeño, para ahorrar memoria RAM.


Solo quería agregar que ... Recordé que en los días de .NET 1.1 el compilador se optimizó para que las operaciones ''int'' sean realmente más rápidas que las operaciones de byte o short.

Creo que todavía se mantiene hoy, pero estoy realizando algunas pruebas ahora.

EDITAR: Tengo un descubrimiento sorpresa: las operaciones de agregar, restar y multiplicar de corto (s) realmente devuelven int!


Todas las computadoras son finitas. Debe definir un límite superior en función de lo que crea que serán los requisitos de los usuarios.

Si realmente no tiene un límite superior y quiere permitir valores ''ilimitados'', intente agregar las bibliotecas de tiempo de ejecución de .Net Java a su proyecto, lo que le permitirá usar la clase java.math.BigInteger, que hace cálculos en un tamaño casi ilimitado. entero.

Nota: Las bibliotecas .Net Java vienen con DevStudio completo, pero no creo que vengan con Express.


Todo el mundo aquí que ha mencionado que declarar un Int16 ahorra ram debe recibir un voto a favor.

La respuesta a su pregunta es usar la palabra clave "int" (o si lo desea, use "Int32").

Eso le da un rango de hasta 2.4 billones de números ... Además, los procesadores de 32 bits manejarán mejor esas entradas ... también (y LA RAZÓN MÁS IMPORTANTE ) es que si planea usar esa int por casi cualquier razón ... es probable que necesite ser un "int" (Int32).

En el marco .Net, el 99.999% de los campos numéricos (que son números enteros) son "enteros" (Int32).

Ejemplo: Array.Length, Process.ID, Windows.Width, Button.Height, etc., etc., 1 millón de veces.

EDITAR: Me doy cuenta de que mi malhumor me va a bajar, voté ... pero esta es la respuesta correcta.


Contrariamente a la respuesta más popular actual, los enteros más cortos (como Int16 y SByte) a menudo ocupan menos espacio en la memoria que los enteros más grandes (como Int32 e Int64). Puede verificar esto fácilmente instanciando grandes arreglos de sbyte / short / int / long y usando perfmon para medir los tamaños de almacenamiento dinámico administrados. Es cierto que muchos de los sabores de CLR ampliarán estos enteros para optimizaciones específicas de la CPU al hacer aritmética en ellos y demás, pero cuando se almacenan como parte de un objeto, ocupan solo la cantidad de memoria necesaria.

Por lo tanto, definitivamente debe tener en cuenta el tamaño, especialmente si va a trabajar con una gran lista de enteros (o con una gran lista de objetos que contienen campos enteros). También debe considerar aspectos como el cumplimiento de CLS (que no permite el uso de enteros sin firmar en miembros públicos).

Para casos simples como convertir una cadena en un entero, acepto que Int32 (C # int) suele tener más sentido y es probable que otros programadores esperen.