miércoles, 26 de agosto de 2015

Tipos de Datos y Variables en C# .NET

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.

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 origenTipo 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 origenTipo 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

No hay comentarios:

Publicar un comentario