Tipos de datos en Visual C#
Los tipos de datos que utiliza C# son clasificados en cuatro grupos.
Tipos primitivos
Variables y Constantes
Enumeraciones
Arrays(Matrices)
Por valor y por referencia
Los tipos por valor difieren de los tipos por
referencia en que las variables de los tipos por valor contienen directamente
su valor, mientras que las variables de los tipos por referencia almacenan
referencias a objetos.
Con los tipos por referencia, es posible que
dos variables se refieran al mismo objeto, y por tanto es posible que las
operaciones sobre una variable afecten al objeto al que hace referencia otra
variable.
Con los tipos por valor, cada variable tiene su propia copia de los datos, y las operaciones sobre una no afectará a la otra.
Tipos primitivos equivalencias
Tipo C# |
Nombre para la plataforma Mono/.NET |
Con signo? |
Bytes utilizados |
Rango |
bool |
System.Boolean |
No |
1 |
verdadero o falso |
byte |
System.Byte |
No |
1 |
0 hasta 255 |
sbyte |
System.SByte |
Si |
1 |
-128 hasta 127 |
short |
System.Int16 |
Si |
2 |
-32.768 hasta 32.767 |
ushort |
System.Uint16 |
No |
2 |
0 hasta 65535 |
int |
System.Int32 |
Si |
4 |
-2.147.483.648 hasta 2.147.483.647 |
uint |
System.Uint32 |
No |
4 |
0 hasta 4.394.967.395 |
long |
System.Int64 |
Si |
8 |
-9.223.372.036.854.775.808 hasta
9.223.372.036.854.775.807 |
Tipo C# |
Nombre para la plataforma Mono/.NET |
Con signo? |
Bytes utilizados |
Rango |
ulong |
System.Uint64 |
No |
8 |
0 hasta 18446744073709551615 |
float |
System.Single |
Si |
4 |
Approximadamente ±1.5E-45 hasta ±3.4E38 con 7
cifras significativas |
double |
System.Double |
Si |
8 |
Approximadamente ±5.0E-324 hasta ±1.7E308 con 7
cifras significativas |
decimal |
System.Decimal |
Si |
12 |
Approximadamente ±1.0E-28 hasta ±7.9E28 con 28 ó
29 cifras significativas |
char |
System.Char |
|
2 |
Cualquier carácter Unicode (16 bits) |
Tipos de enteros
Los tipos que sirven para almacenar números enteros son: byte, sbyte. short, ushort, int, uint, long y ulong. Probablemente el tipo más utilizado es el int, pués se utiliza para controlar matrices, inidizar arreglos además de las operaciones normales con enteros.
Ejemplo
using System;
class Enteros{
public static void
Main()
{
int Minuto = 60; //segundos
por minuto
int Hora = Minuto*60;
int Dia =
Hora*24;
long Anio = Dia*365;
Console.WriteLine("Segundos en un dia:
{0}", Dia);
Console.WriteLine("Segundos en un año:
{0}", Anio);
}
}
El identificador {0} dentro de la cadena de texto
indica que se sustituye {0} por el primer argumento. si hubiera más de un
argumento, se seguiría con {1}, y así sucesivamente. Por ejemplo, las dos
líneas que utilizan Console.WriteLine se pueden simplificar
así:
Console.WriteLine("En un dia: {0}; en un
año: {1}", Dia, Anio);
Tipos de coma flotante
Los tipos de coma flotante sirven para representar
a números con parte fraccionaria. La representación por supuesto puede no ser
exacta, bien por errores de la máquina, bien porque el número de decimales que
se puede alojar es finito. Existen dos clases de tipos de punto flotante, float
y double. De los dos, el más usado es double, pues es el valor que devuelven la
mayoría de las funciones matemáticas de la librería base.
Ejemplo
using System; class
Flotante{
public static void
Main()
{
int a =
2;
double log2 =
Math.Log(2);
double raiz2 =
Math.Sqrt(2);
Console.WriteLine("El logaritmo de dos es
{0}", log2 );
Console.WriteLine("La raiz de dos es
{0}", raiz2 );
}
}
Salida:
El logaritmo de dos es 0.693147180559945
La raizde dos es 1.4142135623731
Variables y Constantes en Visual C#
En
Visual C# toda variable declarada debe ser precedido un tipo de dato
especifico. Un tipo de dato define todo el posible rango de valores que una
variable puede tomar al momento de ejecución del programa.
Para
declarar una variable dentro de un procedimiento se realiza anteponiendo el tipo
de dato antes del nombre de la variable.
Ejemplos:
Int a = 56;
char texto = ‘mi cadena’;
string
nombre = “José”;
Declaración de Constantes
Dentro de una aplicación, puede ser adecuado
e interesante la declaración y uso de valores constantes cuyo valor asignado,
no sea modificable a lo largo de la aplicación y que se utilice para un caso o ejecución determinada.
Ejemplo:
const double PI = 3.1416;
const char character = ‘A’
Ámbito de las variables
Los tres tipos e ámbitos disponibles son:
A
nivel de bloque: Sólo el código del bloque tendrá la
posibilidad de trabajar con la variable (por ejemplo, un bucle for next)
A
nivel de función: Sólo el código de la función donde se declara la
variable podrá modificar su contenido, se llama normalmente variable local.
A
nivel de clase: Una variable declarada en el interior de una
clase es accesible al código de esta clase sin restricción y eventualmente a
partir de otras porciones de código en función del nivel de acceso de la
variable.
Niveles de acceso a variables
public: Los elementos declarados serán accesibles desde cualquier porción de código del proyecto y desde cualquier otro proyecto que haga referencia a aquel donde están declarados. No se pueden utilizar dentro en el interior de las funciones.
protected: Se puede utilizar en el interior de una clase. Permite restringir el acceso a la variable únicamente al código de la clase y todas las clases que hereden de ella.
internal: Serán accesibles desde el ensamblado en el cual están declarados y tampoco se pueden utilizar en el interior de una función.
protected internal: Es
el nivel de acceso de protected e internal.
private: restringe el acceso a
la variable al módulo, a la clase o a la estructura en la cual está declarada.
No se puede utilizar en el interior de un procedimiento o función.
Si no se indica nada a la variable se considerará como private.
Operadores en Visual C#
Prioridad de operador en Visual C#
Cuando aparecen
varias operaciones en una expresión, cada parte se evalúa y se resuelve en un
orden predeterminado conocido como prioridad de operador.
Reglas de
prioridad
Cuando las
expresiones contienen operadores de más de una categoría, dichos operadores se
evalúan de acuerdo con las siguientes reglas:
- Los operadores
aritméticos y de concatenación tienen el orden de prioridad que se
describe en la siguiente sección y tienen prioridad sobre los operadores
lógicos, de comparación y bit a bit.
- Todos los operadores de
comparación tienen la misma prioridad; todos ellos tienen mayor prioridad
que los operadores lógicos y los operadores bit a bit, pero menor
prioridad que los operadores de concatenación y los operadores
aritméticos.
- Los operadores lógicos y
bit a bit tienen el orden de prioridad que se describe en la siguiente
sección y tienen menor prioridad que los operadores aritméticos, de
concatenación y de comparación.
- Los operadores con la misma prioridad se evalúan de izquierda a derecha en el orden en que aparecen en la expresión.
Orden de prioridad
- Los operadores se evalúan en el siguiente orden de prioridad:
- Operadores de concatenación y aritméticos
- Exponenciación (^)
- Identidad y negación unarios (+, –)
- Multiplicación y división de punto flotante (*, /)
- División de número entero (\)
- Módulo aritmético (Mod)
- Suma y resta (+, –)
- Concatenación de cadenas (&)
- Desplazamiento de bits aritmético (<<, >>)
Operadores de
Asignación
Operador =
Asigna un valor a una variable o propiedad.
Operador ^=
Eleva el valor de una variable o una propiedad a la
potencia de una expresión y asigna el resultado de nuevo a la variable o la
propiedad.
Operador *=
Multiplica el valor de una variable o una propiedad
por el valor de una expresión y asigna el resultado a la variable o la
propiedad.
Operador /=
Divide el valor de una variable o una propiedad por
el valor de una expresión y asigna el resultado de punto flotante a la variable
o la propiedad.
\= (Operador)
Divide el valor de una variable o una propiedad por
el valor de una expresión y asigna el resultado entero a la variable o la
propiedad.
Operador +=
Suma el valor de una expresión numérica al valor de
una propiedad o variable numérica y asigna el resultado a la variable o a la
propiedad. También se puede utilizar para concatenar una expresión String con
una propiedad o variable String y asignar el resultado a la variable o a la
propiedad.
Operador -=
Sustrae el valor de una expresión del valor de una
variable o propiedad y asigna el resultado a la variable o propiedad.
Operador <<=
Realiza un desplazamiento aritmético a la izquierda
sobre el valor de una variable o una propiedad y asigna el nuevo valor a la
variable o la propiedad.
Operador >>=
Realiza un desplazamiento aritmético a la derecha
sobre el valor de una variable o una propiedad y asigna el nuevo valor a la
variable o la propiedad.
Operador &=
Concatena una expresión String a una variable o propiedad String y asigna el resultado a la variable o propiedad.
Operadores de comparación
Todos los
operadores de comparación (=, <>, <, <=, >, >=, Is, IsNot,
Like, TypeOf...Is)
Operadores lógicos
y bit a bit
Negación (Not)
Conjunción (And,
AndAlso)
Disyunción
inclusiva (Or, OrElse)
Disyunción exclusiva (Xor)
Editor: Pedro Villalta
Contenido: Pedro Villalta, Luis Hernández
No hay comentarios:
Publicar un comentario
Gracias por tu comentario