Está en la página 1de 4

Tabla 2-1. Tipos de datos centrales de .NET y Visual Basic (continuación).

Nombre de VB Nombre de .NET Descripción

Single Single El tipo de datos Single es muy parecido al tipo de datos Double, sólo que más
pequeño.

Su rango de números positivo es de 1.4 × 10−45 a 3.4 × 10+38, con un rango similar

para números negativos. Como el tipo de datos Double, Single padece de ligeras

inexactitudes durante los cálculos.

String String El tipo de datos String es un tipo de referencia que almacena hasta 2 000 millones
de

caracteres de texto. Almacena caracteres Unicode, que son caracteres de 2 bytes (16 bits)

capaces de almacenar caracteres de casi todos los idiomas del mundo, incluidos algunos

con alfabetos grandes, como el chino.

UInteger UInt32 UInteger almacena enteros sin signo de 4 bytes (32 bits), que van de 0 a 4 294
967 295.

Es la versión sin signo del tipo de datos con signo Integer.

ULong UInt64 ULong almacena enteros sin signo de 8 bytes (64 bits), que van de 0 a

18 446 744 073 709 551 615. Es la versión sin signo del tipo de datos con signo Long.

UShort UInt16 UShort almacena enteros sin signo de 2 bytes (16 bits), que van de 0 a 65 535.
Es la

versión sin signo del tipo de datos con signo Short.

a Esto sólo es cierto en Visual Basic. En otros lenguajes de .NET, como C#, False se vuelve 0,
pero True se vuelve 1, no −1. Si conserva un valor

booleano como Boolean, por lo general no tendrá problemas. Pero si convierte primero sus
valores booleanos en números y luego empieza a

pasarlos de manera forzada entre código de diferentes lenguajes de .NET, podría obtener
resultados sorprendentes.

Los desarrolladores de Microsoft a cargo de los tipos de datos de Visual Basic tuvieron suerte
en

ese trabajo porque todos los tipos de datos centrales de Visual Basic son simples envolturas
para

tipos de datos específicos implementados por .NET. Los nombres de Visual Basic dados para
cada uno

de estos tipos de datos centrales son completamente intercambiables con los nombres de
.NET.

Por ejemplo, Integer es equivalente por completo a System.Int32. En realidad, cuando escribe
código de Visual Basic, es mejor usar sinónimos de Visual Basic, porque la mayoría de los
desarrolladores

de Visual Basic esperan estos nombres de tipos de datos en el código que leen y escriben.

Excepto por Object y String, todos estos tipos de datos son tipos de valor. Todos los tipos de

valor se derivan de System.ValueType (que, a su vez, deriva de System.Object).

Los tipos de datos SByte, UInteger, ULong y UShort se agregaron a Visual Basic con su versión

2005, aunque sus equivalentes del espacio de nombres System han estado en .NET desde sus

inicios. A diferencia de los demás tipos de datos centrales, estos cuatro tipos no son
“compatibles

con CLS”; es decir, no pueden usarse para interactuar con componentes de .NET y lenguajes

que se reducen a las características esenciales necesarias de .NET. Por lo general, esto no suele
ser

una limitación, pero esté prevenido cuando trabaje con componentes o lenguajes de terceros.

Declaración avanzada

Cuando mencioné la necesidad de declarar y asignar variables, realmente me estaba


concentrando

en los tipos de valor. Los tipos de referencia requieren un paso adicional: la creación de

instancias. Considere las siguientes instrucciones de declaración:

Dim valorPredeterminado As Integer

Dim valorNoPredeterminado As Integer = 5

Dim referenciaPredeterminada As Object

Estas líneas declaran tres variables separadas: dos tipos de valor (Integer) y un tipo de
referencia

(Object). Aunque sólo una variable tiene una asignación explícita de datos, los tres tienen en

realidad asignado algo, explícita o implícitamente. Veamos de nuevo estas instrucciones y


revisemos

lo que en realidad está asignado a cada variable.

Dim valorPredeterminado As Integer = 0

Dim valorNoPredeterminado As Integer = 5

Dim referenciaPredeterminada As Object = Nothing

Ya ocurrieron la declaración y la asignación para todas las variables, al usar la instrucción Dim.
La variable valorPredeterminado, con su asignación predeterminada de 0, puede usarse de

inmediato en ecuaciones. Sin embargo, la variable de tipo de referencia


referenciaPredeterminada

es sólo una taza vacía, sin datos predeterminados que manipular. Son características de

Visual Basic que le permiten comparar un tipo de referencia con Nothing, y podría hacer esto

de inmediato, pero en realidad no son datos. Y recuerde que las variables viven para
administrar

datos.

Los valores de datos de referencia necesitan la creación de instancias, y ésta requiere la


palabra

clave New:

Dim referenciaPredeterminada As Object = New Object

Ahora referenciaPredeterminada señala a un objeto real; y ya que esta taza tiene algo
consumible

dentro, aunque sólo sea algo de System.Object, no queda mucho por saborear. Las

cadenas son un poco más interesantes y también tienen constructores más interesantes.

Como recordará del capítulo 1, un constructor es un bloque de código de inicialización que

se ejecuta cuando crea un nuevo valor de datos o un objeto. Algunos objetos le permiten
proporcionar

información adicional que se usa en el proceso de inicialización. Un constructor


predeterminado

no le permite proporcionar ninguna información adicional; sólo funciona por su

cuenta, inicializando datos como si no fuera el trabajo de nadie. Hay un límite en el número de

constructores en una clase, pero a cada uno debe pasársele un tipo diferente de información.

Así que regresemos a las cadenas. El constructor predeterminado para una cadena
simplemente

crea una cadena en blanco, de longitud cero:

Dim cadenaMasAbuirridaDelMundo As String = New String

Ahora, nadie hace esto, porque la siguiente instrucción también funciona:

Dim cadenaMasAbuirridaDelMundo As String = ""

Esto es porque Visual Basic trata de manera especial a las cadenas. Las literales de cadena en

realidad son instancias de los valores de datos String; es como si creara una nueva instancia

de String empleando la clase System.String. Por lo menos, eso es cierto cuando se usa el

constructor predeterminado del tipo de datos String. Pero String también tiene constructores
interesantes. (Entraré en los detalles de los constructores en el capítulo 8.) Uno de los
construc-

También podría gustarte