Tipos de valores (Referencia de C#)

Actualización: noviembre 2007

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

Las estructuras se dividen en las siguientes categorías:

Variables que están basadas 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, es posible derivar 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 contener 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 acerca de los valores predeterminados de los tipos de valor, consulte 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# deben inicializarse para poder utilizarse. Por ejemplo, podría declarar una variable local sin inicialización, como en el ejemplo siguiente:

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.

Esta instrucción es equivalente a la siguiente instrucción:

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, tal y como se muestra en los siguientes ejemplos:

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 acerca de los valores asignados mediante constructores predeterminados, consulte 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, consulte new.

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

Adiciones de comunidad

Mostrar: