Esta documentación está archivada y no tiene mantenimiento.

Tipos de valores (Referencia de C#)

Los tipos de valor consisten en dos categorías principales:

Las estructuras se dividen en las siguientes categorías:

Variable que está basada directamente en tipos de valor que contienen valores. La asignación de una variable de tipo de valor a otra copia el valor contenido. Esto es diferente de la asignación de variables de tipo de referencia, que copia una referencia en el objeto pero no el propio objeto.

Todos los tipos de valor se derivan implícitamente de la clase System.ValueType.

A diferencia de los tipos de referencia, no es posible obtener un nuevo tipo de un tipo de valor. No obstante, al igual que los tipos de referencia, las estructuras pueden implementar interfaces.

A diferencia de los tipos de referencia, los tipos de valor no pueden incluir el valor null. Sin embargo, la característica tipos que aceptan valores NULL permite asignar null a tipos de valores.

Cada tipo de valor tiene un constructor implícito predeterminado que inicializa el valor predeterminado de ese tipo. Para obtener información sobre los valores predeterminados de los tipos de valor, vea Tabla de valores predeterminados.

Todos los tipos simples (aquellos que forman parte integral del lenguaje C#) son alias de los tipos del sistema .NET Framework. Por ejemplo, int es un alias de System.Int32. Para una lista completa de alias, vea Tabla de tipos integrados (Referencia de C#).

Las expresiones constantes, cuyos operandos son todos constantes de tipos simples, se evalúan en tiempo de compilación.

Los tipos simples se pueden inicializar mediante literales. Por ejemplo, 'A' es un literal del tipo char y 2001 es un literal del tipo int.

Las variables locales de C# se deben inicializar antes de utilizarlas. Por consiguiente, si se declara una variable local sin inicialización como ésta:

int myInt;

no se podrá utilizar hasta que se inicialice. La inicialización se puede realizar mediante la siguiente instrucción:

myInt = new int();  // Invoke default constructor for int type.

que equivale a:

myInt = 0;         // Assign an initial value, 0 in this example.

También se puede realizar la declaración y la inicialización en la misma instrucción:

int myInt = new int();

O bien

int myInt = 0;

Con el operador new, se realiza una llamada al constructor predeterminado del tipo específico y se asigna el valor predeterminado a la variable. En el ejemplo anterior, el constructor predeterminado asigna a myInt el valor 0. Para obtener más información sobre valores asignados mediante constructores predeterminados, vea Tabla de valores predeterminados.

Con los tipos definidos por el usuario, se utiliza new para invocar el constructor predeterminado. Por ejemplo, la siguiente instrucción invoca el constructor predeterminado de la estructura Point:

Point p = new Point(); // Invoke default constructor for the struct.

Después de esta llamada, la estructura se considera definitivamente asignada; es decir, todos sus miembros se inicializan con sus valores predeterminados.

Para obtener más información acerca del operador new, vea new.

Para obtener información sobre cómo dar formato a la presentación de tipos numéricos, vea Tabla de formatos de presentación para valores numéricos.

Mostrar: