Mis pisadas hacia el examen 70-536 – Capítulo 1, Lección 1: Usando los tipos valor

image

.NET, tiene 2 formas de almacenar las variables, por valor y por referencia.

¿Qué quiere decir esto? Bien, pues las variables tipo valor, son almacenadas en algo que se llama STACK, o traducido al español, pila; y que meramente es almacenado su valor. Esto significa, que si declaras una variable del tipo entero con valor 2, el valor 2 será almacenado en la pila. Para que lo entiendas mejor, un dibujo que describe esto:

image

Como se ve en el dibujo, cada rectángulo es un espacio en memoria, donde se almacenan los valores.

Ahora bien, existen 3 diferentes tipos valor:

image

Tipos Valor Built-In:

Son los tipos de datos, que ya vienen predefinidos con el framework, entre ellos podemos encontrar los siguientes con su respectiva descripción, y su respectivo alias para el lenguaje C# o bien VB.NET:

 

tabla

– Imagen tomada del curso DCE 2005

y el tamaño de cada uno de ellos, lo podemos observar en la siguiente imagen:

image

– Imagen tomada

Ahora bien, es muy pero muy importante, que estas tablas te las aprendas si es que quieres certificarte, ya que en el examen, vienen preguntas que hace referencia a conversiones entre los distintos tipos de datos.

Además, es importante aclarar, que existen muchos mas tipos de datos built-in, pero los que hemos visto en estas tablas, son los mas importantes.

Ejemplo de pregunta de certificación:

Trabajas en la compañía “La fábrica de las sorpresas”, donde usan Visual Studio 2008 para el desarrollo de aplicaciones.

Estás en el proceso de almacenar valores numéricos de hasta 2,100,000,000 en una variable, pudiendo requerir el almacenamiento negativo de valores también. Si la optimización en el uso de la memoria es requerido, sobre qué tipo de valor debes almacenar dichos valores?

a) Int32

b) UInt16

c) UInt32

d) Int16

 

Tipos Valor Nulos

También, existe la posibilidad de definir variables nulas, o sea una variable que inicialmente no tenga ningún valor. Esto se hace a través de una estructura de la siguiente forma:

   1: Nullable<int> miVariable = null;

O bien, en C#, tenemos una “forma bonita” de declarar valores nulos, o sea para no tener que estar poniendo todo eso de Nullable<int>, basta con aplicar un signo de interrogación después del tipo de dato, para indicar que éste puede ser nulo:

   1: int? miVariable = null;

pero, ¿y para qué nos serviría algo así?, bueno, pues por poner un ejemplo, cuando se le asigna a una variable la estructura de Nullable, adquiere otras propiedades, como por ejemplo, una propiedad llamada HasValue, la cual nos podría servir para verificar que la variable ha obtenido algún valor:

   1: int? miVariable = null;

   2: 

   3:             if(miVariable.HasValue)

   4:                 Console.WriteLine("La variable tiene valor");

   5:             else

   6:                 Console.WriteLine("La variable no tiene valor");

 

Tipos Valor Definidos por el usuario

Estos tipos de datos, mejor conocidos como estructuras, de igual forma son almacenados sobre la pila. En muchos casos, su comportamiento es muy pero muy parecido al de las clases, al poder crearles constructores, métodos, atributos y mas.

Las estructuras, están compuestas de otros tipos de datos, los cuales hacen mas fácil trabajar con nuestros tipos definidos.

Las estructuras, se definen a través de la palabra clave struct (en C#); por ejemplo, podemos definir una estructura llamada Persona, con otro tipo de dato dentro de sí mismo, de tipo entero, para almacenar la edad:

   1: struct Persona

   2:     {

   3:         private int _edad;

   4:     }

Incluso, una estructura puede contener un tipo de valor definido por nosotros mismos. Supongamos que tenemos otra estructura del tipo Personal, sobre la cual queremos almacenar una variable definida por nosotros anteriormente, en este caso la estructura Persona:

   1: struct Personal

   2:     {

   3:         private Persona _persona1;

   4:     }

Ahora bien, cuál es la diferencia entre una clase y una estructura??

Bueno, pues esto es algo en lo que aquellos que están aprendiendo un lenguaje usualmente no se paran a pensar, sin embargo, existen varios criterios, entre los cuales, destacan los siguientes:

  • Representen un único valor lógicamente
  • Tengan un tamaño menor a los 16 bytes
  • No es frecuentemente cambiado después de ser creado
  • No es convertido (Cast) a un tipo referencia

Enumeraciones

Supongamos que tienes una variable, la cual puede tener diferentes valores, por ejemplo, una variable llamada Estados, la cual puede tener como valores: “Aguascalientes, Baja California … Zacatecas”, o sea, 32 posibles valores. Pues esto meramente hacen las enumeraciones, enumerar cada uno de los valores que puede tener dicha variable. Esto le sirve a los desarrolladores para limitar las opciones disponibles para un valor. El ejemplo de los estados quedaría así:

   1: enum Estados

   2: {

   3:     Aguacalientes,

   4:     BajaCalifornia,

   5:     Chiapas,

   6:     Sonora,

   7:     Zacatecas

   8: }

Bueno eso es todo, a continuación les dejo el video de la lección:

Espero que haya quedado bien claro este tema, y cualquier comentario o sugerencia, no duden en contactarme, asimismo, de antemano les pido su apoyo para el próximo concurso de BlogIt, que muy pronto empieza, no les pido dinero a cambio de esta base de conocimientos para el examen 70-536, sin embargo, si les pido su voto de antemano, pronto les pondré el link. Gracias 🙂

 

Héctor Uriel Pérez Rojas

Mis pisadas hacia el examen 70-536 – Introducción

Hola qué tal? Sé que mi último post data desde diciembre, simplemente, no había tenido tiempo de escribir, quiero agradecer a todos aquellos que dejaron comentarios :), aquí me tienen de nuevo je je.

Estoy por presentar el examen de Microsoft 70-536: TS: Microsoft .NET Framework – Application Development Foundation, para lo cual estoy teniendo un entrenamiento personal muy fuerte, ahora bien, me gustaría compartir con los interesados, las cosas que vaya aprendiendo a través de este, mi humilde blog.

image

La cosa está así, haré posts respecto a un tema en específico, explicando las bases, para posteriormente publicar un video en donde abarque de forma práctica cómo se pueden aplicar esos conocimientos en la vida real. Eso sí, abarcaré todos los temas correspondientes al temario del examen, no importa que vaya lento, lo importante es que quede bien hecho.

Esto lo hago, en parte para tener una base de conocimientos personal, y para que todo aquel, que al igual que yo, vaya a presentar este examen, o bien, simplemente para abarcar conocimientos.

Si quieren obtener mas información al respecto, aquí está el link de la descripción del examen:

http://www.microsoft.com/learning/en/us/exams/70-536.aspx

Pues entonces, a estudiar se ha dicho! 😉

 

Héctor Uriel Pérez Rojas