Elección del tipo de datos correcto
Ya conoce la diferencia entre los tipos de valor y los tipos de referencia, así como los tipos de datos enteros y de punto flotante.
Supongamos que su trabajo consiste en crear una nueva aplicación que recupera, manipula y almacena diferentes tipos de datos. ¿Qué tipos de datos usa?
En algunos casos, la es fácil. Por ejemplo, si necesita trabajar con texto, usaré el tipo de datos string de forma predeterminada, a menos que necesite realizar una cantidad significativa de concatenaciones.
Pero ¿qué ocurre si trabaja con datos numéricos? Hay 11 opciones diferentes. ¿Cómo se elige el tipo de datos correcto?
Elección del tipo de datos correcto
Con tantos tipos de datos entre los que elegir, ¿qué criterios debe usar para elegir el tipo de datos correcto para una situación específica?
Al evaluar sus opciones, debe tener en cuenta varias consideraciones importantes. A menudo, no hay una única respuesta correcta, pero algunas respuestas son más correctas que otras.
Elija el tipo de datos que cumpla los requisitos del intervalo de valores del límite de la aplicación.
La elección de un tipo de datos puede ayudar a establecer los límites de tamaño de los datos que se pueden almacenar en esa variable concreta. Por ejemplo, si sabe que una variable determinada solo debe almacenar un número entre 1 y 10 000 o estaría fuera de los límites de lo que se espera, probablemente podría evitar byte y sbyte, ya que sus intervalos son demasiado bajos.
Además, es probable que no necesite int, long, uint y ulong, porque pueden almacenar más datos de los necesarios. Del mismo modo, probablemente omitirá float, double y decimal si no necesita valores fraccionarios. Puede reducirlo a short y ushort, y ambos podrían ser viables. Si está seguro de que no tendría ningún sentido incluir un valor negativo en la aplicación, puede elegir ushort (entero positivo sin signo, de 0 a 65 535). Ahora, cualquier valor asignado a una variable de tipo ushort fuera del límite de 0 a 65 535 produciría una excepción, lo cual le ayuda a aplicar cierto grado de comprobación del estado de su aplicación.
Comience por elegir el tipo de datos para ajustarse a los datos (no optimizar el rendimiento)
Es posible que tenga la tentación de elegir el tipo de datos que use el menor número de bits para almacenar los datos si piensa que esto mejorará el rendimiento de la aplicación. Sin embargo, uno de los mejores consejos relacionados con el rendimiento de las aplicaciones (es decir, la velocidad con la que se ejecuta la aplicación) es no “optimizar antes de tiempo”. Debe resistir la tentación de adivinar qué partes del código pueden afectar al rendimiento de la aplicación, también a la hora de seleccionar los tipos de datos.
Muchos suponen que, como un tipo de datos determinado almacena menos información, debe usar menos el procesador y la memoria del equipo que un tipo de datos que almacena más información. En su lugar, debe elegir la opción más adecuada para sus datos y, posteriormente, puede medir empíricamente el rendimiento de la aplicación mediante software especial, el cual proporciona información detallada sobre las partes de la aplicación que afectan negativamente al rendimiento.
Elección de los tipos de datos en función de los tipos de datos de entrada y salida de las funciones de biblioteca usadas
Imagine que quiere trabajar con un intervalo de años entre dos fechas. Dado que la aplicación es una aplicación empresarial, puede determinar que solo necesita un intervalo aproximado de 1960 a 2200. Puede pensar en intentar trabajar con byte, ya que puede representar números entre 0 y 255.
Sin embargo, al examinar los métodos integrados en las clases System.TimeSpan y System.DateTime, verá que aceptan principalmente valores de tipo double y int. Si elige sbyte, alternará constantemente entre byte y double o int. En este caso, es posible que tenga más sentido elegir int si no necesita una precisión de subsegundos y double en caso de que sí la necesite.
Elección de tipos de datos en función del impacto en otros sistemas
A veces, debe tener en cuenta cómo consumirán la información otras aplicaciones u otros sistemas, como una base de datos. Por ejemplo, el sistema de tipos de SQL Server es diferente del sistema de tipos de C#. Como resultado, es necesario realizar algunas asignaciones entre los dos para poder guardar los datos en esa base de datos.
Si el propósito de la aplicación es hacer de interfaz con una base de datos, es probable que tenga que tener en cuenta cómo se almacenan los datos y cuántos datos se almacenan. La elección de un tipo de datos mayor podría afectar a la cantidad (y el costo) del almacenamiento físico necesario para almacenar todos los datos que generará la aplicación.
Si tiene duda, limítese a lo básico.
Aunque ha examinado varias consideraciones, al principio y por simplicidad, debería preferir un subconjunto de tipos de datos básicos, incluidos:
-
intpara la mayoría de los números enteros. -
decimalpara números que representan dinero. -
boolpara valores verdaderos o falsos. -
stringpara valores alfanuméricos.
Elija tipos complejos de especialidad para situaciones especiales.
No reinvente los tipos de datos si ya existen uno o varios tipos de datos para un propósito determinado. Los siguientes ejemplos identifican dónde pueden resultar útiles los tipos de datos de .NET específicos:
-
byte: trabajar con datos codificados que proceden de otros sistemas informáticos o que usan distintos juegos de caracteres. -
double: trabajar con fines geométricos o científicos.doublese usa con frecuencia al compilar juegos que implican movimiento. -
System.DateTimepara el valor de una fecha y hora específicas. -
System.TimeSpanpara un intervalo de años, meses, días, horas, minutos, segundos o milisegundos.
Resumen
Hay varias consideraciones al elegir tipos de datos para el código y, a menudo, más de una opción. Piense en sus opciones y, a menos que tenga una buena razón, intente ceñirse a los tipos básicos, como int, decimal, stringy bool.