Anuncios

Bienvenidos sean a este post, en el post anterior hablamos sobre las variables que son de tipo referencia pero hoy nos toca hablar sobre las de tipo valor.

Anuncios

En este caso las variables de tipo valor estan relacionadas a las variables que no son de una clase sino de las de tipo primitivas porque las variables son creadas con estos tipos, para que entendamos mejor el concepto vamos a crear un nuevo archivo lo llamaremos Valores.cs y le agregaremos el siguiente codigo:

Valores.cs

using System;
    
public class Valor
{
	int valor1;
	int valor2;
	int total;

	public void MostrarValores()
	{
	    valor1 = 10;
	    valor2 = valor1;
	    total = valor1 + valor2;
	    Console.WriteLine("Valor1: " + valor1);
	    Console.WriteLine("Valor2: " + valor2);
	    Console.WriteLine("Total: " + total);
	    valor1 = 20;
	    total = valor1 + valor2;
	    Console.WriteLine("Valor1: " + valor1);
	    Console.WriteLine("Valor2: " + valor2);
	    Console.WriteLine("Total: " + total);
	}
}

public class Program
{
	public static int Main()
	{
		Valor valor = new Valor();
		valor.MostrarValores();
		return 0;
	}
}
Anuncios
Nota: Recuerden que no es la mejor practica pero lo hacemos por practicidad.
Anuncios

En este codigo tendremos una clase llamada Valor, la cual posee tres variables (valor1, valor2 y total) y un metodo llamado MostrarValores, este metodo asigna un valor a valor1, luego a valor2 le asignamos a valor1 y total es la suma de valor1 y valor2, las siguientes tres lineas mostraran los tres valores, nuestra siguiente linea sera asignar un nuevo valor a valor1 para luego volver a calcular a total, por ultimo para mostrar nuevamente los tres valores, despues tendremos a Main donde crearemos un objeto de esta clase y llamaremos a MostrarValores, si lo compilamos y ejecutamos veremos la siguiente salida:

C:\Users\tinchicus\Source\Repos\Tipos\Tipos\bin\Debug>Tipos.exe
Valor1: 10
Valor2: 10
Total: 20
Valor1: 20
Valor2: 10
Total: 30

C:\Users\tinchicus\Source\Repos\Tipos\Tipos\bin\Debug>
Anuncios
Anuncios

Vean como en el primer caso tenemos a valor1 con el valor asignado y a valor2 con el mismo valor porque se lo pasamos, en total tenemos la suma de los dos valores anteriores, observen como valor1 cambio (recuerden que le asignamos un nuevo valor) pero valor2 no cambio y obviamente cambio el valor de total, pero porque no cambio el valor de valor2 como cuando vimos en referencia? porque esa es la diferencia con el tipo anterior, aca cuando le asignamos una variable de tipo valor no lo hace por referencia, es decir por espacio de memoria, sino simplemente el valor, acuerdense que son tipos simples de datos y no clases (excepto string), por ende no es tan complicado como vimos en el post anterior, ya que solo debe almacenar el tipo de dato que le pasamos y no todo un objeto derivado de una clase con metodos y propiedades.

Entonces su principal diferencia va a radicar que en este tipo de variables solo almacenaremos valores o datos pero en los de referencia guardaremos todo lo relacionado al objeto en un espacio de memoria, esto tiene sus pros y contras, si bien nos permite manejar informacion de forma mas dinamica y practica, tampoco usaremos tanta memoria pero no tendremos metodos a nuestra disposicion, salvo string que puede trabajar de las dos formas ya sea por valor o como si fuera un objeto, agreguemos el siguiente bloque de al final del metodo MostrarValores:

            string cadena = "Texto de prueba";
            string[] arreglo = cadena.Split(' ');
            for(int i=0; i < arreglo.Length; i++)
            {
                Console.WriteLine(arreglo[i]);
            }
Anuncios

En este caso primero usamos a cadena como un tipo de valor, si nosotros le asignamos otro valor el primero asignado se perdera, nuestro siguiente paso sera crear un array de tipo string llamado arreglo y por medio del metodo Split, de la clase string lo separamos mediante los espacios, por ultimo usamos un bucle for para mostrar en pantalla los valores que asignamos en arreglo, compilemos y veamos su salida:

C:\Users\tinchicus\Source\Repos\Tipos\Tipos\bin\Debug>Tipos.exe
Valor1: 10
Valor2: 10
Total: 20
Valor1: 20
Valor2: 10
Total: 30
Texto
de
prueba

C:\Users\tinchicus\Source\Repos\Tipos\Tipos\bin\Debug>
Anuncios

En este caso vemos que nos separo correctamente el texto en cadena, con esto podemos concluir que combinando tanto las variables por tipo referencia como las de valor podremos cubrir un amplio rango de nuestras necesidades en nuestro programas, ya sea con el almacenamiento de informacion simple como el poder manejar tipos de datos especiales para nosotros.

Anuncios
Nota: La otra diferencia va a radicar en que lugar de la memoria se van a ubicar, dado que este tipo de variables son mas simples y pequeñas que las de referencia por lo general se asignan en la parte baja de la memoria y por ende seran de un acceso mas rapido.
Anuncios

En resumen, hoy hemos visto que son los tipos de valor, como se crean, como se asigna informacion, que tipo de informacion pueden manejar, los pros y contras de este tipo de variables, las diferencias con los de referencia y algunas excepciones, tambien cual es la diferencia fundamental con las de referencia, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

1.00 $