Desarrollo de Software

Variables y Tipos de Variables en C#

Variables and Variable Types in C#

En este articulo aprenderas todo sobre que es una variable y como se usan las variables en C#, tambien los tipos de variables y como se utiliza cada uno en este lenguaje de programacion. En caso de que te gusten mas los videos, aqui comparto algunos donde explico el siguiente contenido de forma precisa y resumida:

Sin mas preambulos, comencemos...

Que es una Variable?

Es un simbolo que representa un lugar de almacenamiento que puede tener diferentes valores durante el tiempo.

Normalmente quizas hayas escuchado sobre variables, ya que son muy utilizadas al realizar calculos matematicos y logicos. Como en C# utilizamos bastante estas operaciones, aqui tambien debes conocer este concepto.

Para que estes un poco mas claro, aqui te muestro un ejemplo en la siguiente imagen:

Ejemplo de variable X con valor 15

Supongamos que la letra X es el simbolo que representa nuestra variable y X tiene un valor de 15. Esto quiere decir que X esta almacenando un valor de 15, pero a traves del tiempo este valor puede ser cambiado.

Por ejemplo, yo podria decir que ahora X es igual a 20, y mas adelante tambien puedo asignarle otro valor.

Ejemplo de variable X con valores cambiantes

Lo importante en este concepto es que tomes en cuenta que las variables no tienen valores constantes, sino que pueden variar con el tiempo.

Sintaxis Para Declarar Variables en C#

La sintaxis para declarar variables es como se muestra en la siguiente imagen:

Sintaxis para declarar variables en C#

Primero colocamos el tipo de datos, del cual estaremos hablando mas adelante en este mismo articulo.

Luego sigue el nombre de la variable.

Y por ultimo un valor inicial que tiene la variable, el cual es opcional. En caso de no colocar un valor inicial, el compilador le asigna un valor por defecto dependiendo del tipo de datos con el que se declara la variable.

Tipos de Variables en C#

Ahora que sabes como declarar una variable, debes saber que existen tres tipos de variables en C#:

  • Variables Locales
  • Variables de Instancia
  • Variables de Clase o Estaticas

Paso a explicarte cada una de ellas...

Variables Locales

Son las variables que son declaradas dentro de metodos y solo pueden ser utilizadas dentro de los mismos.

En el siguiente bloque de codigo vemos como tenemos un metodo llamado imprimir.

Ejemplo de variable local en C#

Lo que necesito que te fijes aqui es que declaramos una variable llamada variableLocal, a la cual le asignamos el valor 100, y en la linea numero 3 imprimimos su valor utilizando la funcion Console.WriteLine, pasandole entre parentesis variableLocal. Lo que simplemente hace esto es imprimir en consola el valor de la variableLocal...

NOTA: Si te fijas, la variable que declaramos dentro del metodo solo puede ser utilizada dentro del mismo. Esto quiere decir que si intentamos utilizar la misma variable fuera del metodo, como vemos en la linea 6 de esta imagen, te presentara un error de compilacion indicando que la variable no existe.

Error al usar variable local fuera de su metodo

Variables de Instancia

Las variables de instancia son aquellas que son declaradas dentro de una clase y son utilizadas para definir los atributos que puede tener un objeto.

Estaremos hablando de las clases en otro articulo, pero para adelantarte un poco, las clases son como plantillas en las cuales se definen las funciones y atributos que puede tener un objeto.

En el siguiente ejemplo definimos una clase llamada Cliente y le declaramos varias variables de instancia que representan los datos que puede tener un cliente.

Ejemplo de variables de instancia en clase Cliente

Es importante que tomes en cuenta que las variables declaradas dentro de una clase pueden ser utilizadas por los metodos de la misma clase.

Como vemos en la siguiente imagen, a partir de la linea 7, el metodo llamado imprimirNombre imprime en consola el valor de la variable Nombre que esta definida previamente como propiedad de la clase.

Metodo usando variable de instancia

Variables de Clase o Variables Estaticas

Son conocidas como variables estaticas o variables de tipo; pueden ser accedidas a traves de la clase o sus instancias.

En C# las variables estaticas se declaran como las variables de instancia, pero agregandoles simplemente la palabra clave static antes del tipo de datos.

Declaracion de variable estatica en C#

Para asignar un valor u obtener el valor de una variable estatica podemos hacerlo a traves de la clase o bien de una instancia de la clase.

En el siguiente ejemplo vemos como en la linea 7 asignamos el valor 1 y posteriormente en la linea 8 lo imprimimos en consola.

Tambien, fijate que la sintaxis para acceder a una variable estatica es el NOMBRE DE LA CLASE, punto y luego EL NOMBRE DE LA VARIABLE estatica.

Acceso a variable estatica en C#

Tipos de Datos en Lenguaje C#

El tipo de datos en C# es la propiedad de un valor que define a que dominio pertenece, es decir, que posibles valores puede tomar y que operaciones se pueden realizar.

C# es un lenguaje type-safe, lo que significa que en tiempo de ejecucion verifica que el valor de un tipo de datos solo pueda interactuar siguiendo las caracteristicas y protocolos de dicho tipo, permitiendo mantener una consistencia interna.

Para decirtelo de una forma mas clara: una variable numerica de tipo entero no se puede manipular ni interactuar con ella como si fuera una cadena de caracteres (texto).

Ademas, C# tambien es de tipado estatico (static typing), es decir, durante la compilacion el compilador verifica que un tipo de datos solo pueda ser instanciado con un valor dentro de sus caracteristicas.

Es decir, antes de correr la aplicacion, mientras se compila, el compilador verifica que las variables se utilicen de forma correcta segun el tipo de datos con el que fueron declaradas.

Categorias de Tipos de Datos en C#

Los tipos de datos en C# se pueden clasificar dentro de las siguientes categorias:

  • Tipos de Datos de Valor
  • Tipos de Datos de Referencias
  • Tipos Genericos
  • Tipos Punteros

En este articulo estaremos abordando los primeros dos -- tipos de datos de valor y referencia -- que son los mas utilizados.

La diferencia entre los tipos de datos de valor y de referencia es la manera en que se manejan en la memoria del computador mientras se ejecuta la aplicacion.

Tipos de Datos de Valor

Son aquellos tipos que almacenan directamente en memoria el valor con el que se instancia una variable.

Esta categoria incluye mayormente los tipos predefinidos y soportados por el compilador en C#, especialmente los numeros, caracteres y booleanos, incluyendo ademas los tipos personalizados struct y enum.

Cuando una variable es declarada con un tipo de datos de valor, tambien conocido como tipo de datos simple, esta almacena directamente el valor asignado en memoria.

Por ejemplo, supongamos que declaro una variable tipo numerico entero llamada valor1 y le asigno el valor de 28.

int valor1 = 28;

El compilador interpreta esta linea de la siguiente manera:

Imagen que presenta como se ven las variables de tipo Valor en memoria

La variable valor1 apunta directamente a un valor almacenado en memoria.

Otra caracteristica de los tipos de datos de valor es que al asignar una variable a otra, el valor es copiado a un espacio de memoria distinto. Por ejemplo, si declaramos una variable llamada valor2 e igualamos a valor1, el compilador copia el valor y lo asigna en un espacio de memoria totalmente distinto:

Imagen que presenta como se copian las variables de tipo Valor en memoria

Importante notar que las variables de tipo de datos de valor tienen un almacenamiento diferente en memoria. Por lo tanto, al asignar una variable a otra, los datos son copiados y se puede modificar el valor de una variable sin que afecte a la otra.

Dicho lo anterior, si modificamos el valor de valor2 a 30, veremos que al imprimir en consola la variable valor1 aun tiene el valor de 28, ya que su almacenamiento en memoria es distinto.

Tipos de Datos de Referencia

Las variables que son de tipo de datos de referencia apuntan a un objeto en memoria que es el que contiene almacenado el valor que se le asigna, a diferencia de las de valor, cuyas variables almacenan los datos asignados directamente.

Dentro de los tipos de datos de referencia en C# tenemos los siguientes:

  • class
  • interface
  • delegate

Tambien, de manera predefinida en C# tenemos los siguientes tipos de datos de referencia:

  • object: que es el tipo base de los demas tipos.
  • string: representa una cadena de caracteres.
  • dynamic: representa tipo dinamico en tiempo de ejecucion.

Por defecto, las variables de tipo referencia tienen valor null, hasta que sea creada o bien se le asigne otra variable que fue instanciada con el operador new.

Una variable de referencia realmente almacena una referencia hacia un objeto en memoria, quien es el que realmente esta guardando los datos.

La siguiente imagen muestra como maneja C# en memoria una variable declarada con un tipo de datos de referencia:

Imagen muestra como se maneja C# en memoria una variable declarada con un tipo de datos de referencia

Al momento de crear una variable nueva de tipo de datos de referencia en C#, el compilador guarda en un espacio en memoria la referencia (o direccion) hacia otro espacio en memoria que es el que guarda los datos de nuestro objeto.

Otra caracteristica de una variable de tipo de datos de referencia es que cuando asignamos una variable a otra del mismo tipo, ambas variables apuntan a la misma referencia en memoria. Por lo tanto, si modificamos una propiedad de una variable, afectara a la otra.

Por ejemplo, si en nuestra primera variable cliente1 asignamos la propiedad Nombre igual a "Yeison" y luego creamos otra variable llamada cliente2 asignandole cliente1, al cambiarle el Nombre a cliente2 e imprimir cliente1, veremos que el valor en consola tambien habra cambiado, ya que ambas apuntan a la misma referencia en memoria.

Tipos de Datos Predefinidos en C#

C# como lenguaje de programacion cuenta con 16 tipos de datos predefinidos que pueden ser utilizados a su vez para crear tipos de datos personalizados.

Dentro de los tipos mas utilizados se encuentran aquellos que son de tipo numerico, alfanumerico y de valores logicos.

Tipo de Datos Numericos Enteros

Aqui en la siguiente imagen se muestra una tabla con los tipos de datos numericos enteros predefinidos en C#.

Los tipos numericos enteros se agrupan a su vez en enteros con signo (sbyte, short, int, long), que pueden tomar valores negativos, y enteros sin signo (byte, ushort, uint, ulong), los cuales solo pueden tomar valores positivos a partir de cero.

Tipos de Variables Numericos Enteros con Signo en C#
Tipos de Variables Numericos Enteros sin Signo en C#

La principal diferencia entre estos enteros es el rango de valores que pueden tener asignados las variables y el espacio que ocupan en memoria.

El alias que vemos en esta tabla se refiere al keyword o forma corta que utilizamos para declarar estos tipos en C#, lo cual nos ayuda a no tener que escribir el nombre largo con el que se definieron en la libreria de .NET. El valor predeterminado de estos tipos de datos es cero (0). Ademas, admiten operadores aritmeticos, de comparacion, bit a bit y de igualdad.

Tipos de Datos Alfanumericos (Char y String)

El tipo de dato char en C# se utiliza para almacenar un unico caracter alfanumerico. Es ideal para situaciones donde se necesita trabajar con caracteres individuales, como en el analisis de textos o en la codificacion de caracteres.

Un ejemplo clasico es la iteracion sobre cada caracter de una cadena para realizar alguna operacion, como la conversion a mayusculas o la verificacion de caracteres especiales.

Por otro lado, string es un tipo de dato que permite almacenar secuencias de caracteres, es decir, textos. Es uno de los tipos mas utilizados, ya que permite la manipulacion de palabras, oraciones o incluso textos completos.

Se utiliza en una amplia variedad de aplicaciones, desde la interfaz de usuario hasta el procesamiento de datos y la generacion de informes.

Variables Booleanas

Por ultimo, las variables booleanas son un tipo de dato que solo pueden tener dos valores: true o false. En C#, se declaran usando la palabra clave bool. Son fundamentales para la toma de decisiones en el codigo, permitiendo ejecutar diferentes acciones segun condiciones especificas.

Se utilizan comunmente en estructuras de control como if y while, para realizar pruebas logicas y controlar el flujo del programa.

Conclusion

Esto seria todo sobre variables en C#. En este articulo hemos abordado de manera rapida como utilizarlas y los diferentes tipos que podemos encontrar en este lenguaje de programacion.

Compartir:

Publicaciones relacionadas