Los tipos de datos en C# son muy similares a los ya conocidos en Visual Basic .NET (ver Datos y variables en Visual Basic .NET). A continuación se presenta una tabla con los tipos de datos que podemos encontrar en C#.
Tipo | Valores |
---|---|
bool | True, False |
byte | 0-255 |
sbyte | -128 a 127 |
char | Símbolos Unicode utilizados en el texto |
float | -3,402823e38 a 3,402823e38 |
decimal | ±1.0 × 10e−28 a ±7.9 × 10e28 |
double | -1,79769313486232e308 a 1,79769313486232e308 |
short | −32.768 hasta 32.767 |
ushort | 0 hasta 65.535 |
int | −2.147.483.648 hasta 2.147.483.647 |
uint | 0 hasta 4.294.967.295 |
long | −9.223.372.036.854.775.808 hasta 9.223.372.036.854.775.807 |
ulong | 0 hasta 18.446.744.073.709.551.615 |
object | Cualquier tipo puede almacenarse en Object |
string | Cualquier secuencia de caracteres |
Al igual que en Visual Basic .NET, cada tipo de dato proviene de una clase que para C# está ubicada en el espacio de nombres System. Los tipos de datos descritos anteriormente se obtienen de las siguientes clases.
En C# podemos declarar variables escribiendo el tipo de dato, seguido del nombre de la variable tal y como se muestra en el siguiente ejemplo.
Además, podemos declarar e inicializar variables en una sola instrucción. En el siguiente ejemplo se declara una variable entera en la primera línea, se inicializa en la segunda y finalmente en la tercera línea se declara e inicializa otra variable en una sola sentencia.
De igual forma se pueden aplicar estas sencillas reglas con cualquier otro tipo de dato.
Para declara una constante en C# se realiza con la palabra reservada const. Además de esto, C# proporciona la palabra reservada readonly para declara una variable que solo puede ser asignada una vez en tiempo de ejecución y su valor no puede cambiar. La diferencia entre estas dos instrucciones, básicamente radica en que una constante al ser declarada e inicializada no puede cambiar su valor en tiempo de ejecución. A continuación, un ejemplo de declaración y asignación de constantes.
En la primera línea, hemos asignado a c1 el valor 5 como una constante entera. De igual forma en la segunda línea se han asignado tres constantes en la misma declaración, esta vez, de tipo double.
Las enumeraciones en C# se utilizan para agrupar constantes en un solo nombre de manera similar a como se hace en C y C++.
Como se puede ver en el ejemplo anterior, se ha utilizado el nombre Color para agrupar cuatro constantes, tres de las cuales ya deben estar definidas anteriormente en el código y toman los valores correspondientes por defecto. La última constante, ha sido asignada manualmente con el valor 3. Para acceder a cualquiera de las constantes definidas en la enumeración basta con juntar el nombre de la enumeración seguida de un punto y el nombre de la constante.
C# puede realizar conversiones de tipo de manera implícita o explicita dependiendo del contexto. Una conversión implícita luce de la siguiente forma.
A continuación, se presenta una tabla que nos ayudará a determinar qué tipos de datos pueden ser convertidos a otros de manera implícita.
Las conversiones explícitas, como su nombre lo indica, declaran explícitamente la conversión de un tipo a otro.
Como puede verse, para convertir explícitamente de un tipo a otro debe declararse el tipo al cual quiere convertirse entre paréntesis antes del nombre de la variable a convertir. Este es un comportamiento esperado, y es similar a lo que ocurre en otros lenguajes de programación como Java o PHP. A continuación, se presenta una tabla que nos ayudará a determinar cuándo debemos utilizar la conversión explícita.
Dado que C# es un lenguaje puramente orientado a objetos, es necesario contar con las bases de la POO para tener un entendimiento claro del lenguaje. Por lo pronto, es recomendable visitar el post Introducción a la Programación Orientada a Objetos. Hasta pronto!.
Referencias
Tipo C# | Tipo .NET Framework |
---|---|
bool | System.Boolean |
byte | System.Byte |
sbyte | System.SByte |
char | System.Char |
decimal | System.Decimal |
double | System.Double |
float | System.Single |
int | System.Int32 |
uint | System.UInt32 |
long | System.Int64 |
ulong | System.UInt64 |
object | System.Object |
short | System.Int16 |
ushort | System.UInt16 |
string | System.String |
Declaración e inicialización de variables
En C# podemos declarar variables escribiendo el tipo de dato, seguido del nombre de la variable tal y como se muestra en el siguiente ejemplo.
int a;
Además, podemos declarar e inicializar variables en una sola instrucción. En el siguiente ejemplo se declara una variable entera en la primera línea, se inicializa en la segunda y finalmente en la tercera línea se declara e inicializa otra variable en una sola sentencia.
int b; b = 10; int c = 5;
De igual forma se pueden aplicar estas sencillas reglas con cualquier otro tipo de dato.
Constantes
Para declara una constante en C# se realiza con la palabra reservada const. Además de esto, C# proporciona la palabra reservada readonly para declara una variable que solo puede ser asignada una vez en tiempo de ejecución y su valor no puede cambiar. La diferencia entre estas dos instrucciones, básicamente radica en que una constante al ser declarada e inicializada no puede cambiar su valor en tiempo de ejecución. A continuación, un ejemplo de declaración y asignación de constantes.
public const int c1 = 5; public const double x = 1.0, y = 2.0, z = 3.0;
En la primera línea, hemos asignado a c1 el valor 5 como una constante entera. De igual forma en la segunda línea se han asignado tres constantes en la misma declaración, esta vez, de tipo double.
Enumeraciones
Las enumeraciones en C# se utilizan para agrupar constantes en un solo nombre de manera similar a como se hace en C y C++.
public enum Color { Green, //defaults to 0 Orange, //defaults to 1 Red, //defaults to 2 Blue = 3 }
Como se puede ver en el ejemplo anterior, se ha utilizado el nombre Color para agrupar cuatro constantes, tres de las cuales ya deben estar definidas anteriormente en el código y toman los valores correspondientes por defecto. La última constante, ha sido asignada manualmente con el valor 3. Para acceder a cualquiera de las constantes definidas en la enumeración basta con juntar el nombre de la enumeración seguida de un punto y el nombre de la constante.
Color favorite = Color.Blue;
Conversiones de Tipo
C# puede realizar conversiones de tipo de manera implícita o explicita dependiendo del contexto. Una conversión implícita luce de la siguiente forma.
int int1 = 5; long long1 = int1; //conversión
A continuación, se presenta una tabla que nos ayudará a determinar qué tipos de datos pueden ser convertidos a otros de manera implícita.
Tipo de origen | Tipo de destino |
---|---|
Byte
|
short, ushort, int, uint, long, ulong, float, double o decimal
|
Sbyte
|
short, int, long, float, double o decimal
|
Int
|
long, float, double o decimal
|
Uint
|
long, ulong, float, double o decimal
|
Short
|
int, long, float, double o decimal
|
Ushort
|
int, uint, long, ulong, float, double o decimal
|
Long
|
float, double o decimal
|
Ulong
|
float, double o decimal
|
Float
|
double
|
Char
|
ushort, int, uint, long, ulong, float, double o decimal
|
Las conversiones explícitas, como su nombre lo indica, declaran explícitamente la conversión de un tipo a otro.
long long2 = 5483; int int2 = (int)long2; // conversión
Como puede verse, para convertir explícitamente de un tipo a otro debe declararse el tipo al cual quiere convertirse entre paréntesis antes del nombre de la variable a convertir. Este es un comportamiento esperado, y es similar a lo que ocurre en otros lenguajes de programación como Java o PHP. A continuación, se presenta una tabla que nos ayudará a determinar cuándo debemos utilizar la conversión explícita.
Tipo de origen | Tipo de destino |
---|---|
Byte
|
sbyte o char
|
Sbyte
|
byte, ushort, uint, ulong o char
|
Int
|
sbyte, byte, short, ushort, uint, ulong o char
|
Uint
|
sbyte, byte, short, ushort, int o char
|
Short
|
sbyte, byte, ushort, uint, ulong o char
|
Ushort
|
sbyte, byte, short o char
|
Long
|
sbyte, byte, short, ushort, int, uint, ulong o char
|
Ulong
|
sbyte, byte, short, ushort, int, uint, ulong o char
|
Float
|
sbyte, byte, short, ushort, int, uint, long, ulong, char o decimal
|
Double
|
sbyte, byte, short, ushort, int, uint, long, ulong, char o decimal
|
Char
|
sbyte, byte o short
|
Decimal
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, float o double
|
Dado que C# es un lenguaje puramente orientado a objetos, es necesario contar con las bases de la POO para tener un entendimiento claro del lenguaje. Por lo pronto, es recomendable visitar el post Introducción a la Programación Orientada a Objetos. Hasta pronto!.
Referencias
- Tipos de datos (C# y Java) (2015, August). In Learn to Develop With Microsoft | MSDN. Retrived 10:00, August 25, 2015 from https://msdn.microsoft.com/es-es/library/ms228360(v=vs.80).aspx
- Built-In Types Table (C# Reference) (2015, August). In Learn to Develop With Microsoft | MSDN. Retrived 10:00, August 25, 2015 from https://msdn.microsoft.com/en-us/library/ya5y69ds.aspx
- const (C#) (2015, August). In Learn to Develop With Microsoft | MSDN. Retrived 14:20, August 25, 2015 from https://msdn.microsoft.com/es-es/library/e6w8fe1b(v=vs.80).aspx