Mostrando entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando entradas con la etiqueta C#. Mostrar todas las entradas

miércoles, 18 de agosto de 2010

Introducción a WPF

En esta ocasión @EdwinCruces, blogger del sitio Ante todo variedad me ha permitido colgar un artículo que escribió, que da una idea de como empezar a trabajar con WPF, así que aquí les dejo el post.


Con el rápido avance de la tecnología, es inevitable que los lenguajes de programación también mejoren cada día más. Es por eso que desde la salida al mercado del sistema operativo Microsoft Windows Vista los sistemas Windows incorporan una tecnología llamada Windows Presentation Foundation, la cual además de separar eficientemente la parte lógica de la parte gráfica haciendo uso del Lenguaje XAML, también hace las interfaces de usuario mucho más agradables y dinámicas. De ahí que para un desarrollador sea más fácil y práctico trabajar junto a un experto en interfaces (Diseñador Gráfico) o bien hacer uso de su buen gusto y "cacharrearle" un poco al tema para pulir sus aplicaciones con sencillos Skins, Templates y/o Temas para WPF. Pero de esto hablaremos luego. Hoy quienes tengan aunque sea un poco de experiencia en desarrollo .Net podrán realizar este sencillo How-To.

pulsa clic en la imagen para verla más grande
__

Lo primero que debes hacer es abrir Visual Studio (2008 ó 2010) y crear una nueva solución con la plantilla de Aplicación WPF en el lenguaje de tu preferencia (VB ó C#), dale un nombre y clic en Crear. Lo primero que verás será una especia de texto XML con un diseñador de interfaz arriba de él; ése es el lenguaje declarativo XAML (eXtensible Application Markup Language) que es con el cual se crean las interfaces WPF. Allí puedes crear botones, paneles, contenedores, elementos para multimedia, etc. Crea un TextBox, un Botón y un ListBox y dale un nombre a cada uno. Para acceder al código de la parte lógica de tu aplicación basta con dar clic derecho en el diseñador y seleccionar 'Ver código', esto te llevará al archivo Code-Behind que contiene tan solo el constructor de la clase. Ahora agrega una nueva clase estática llamada Commands que contenga un objeto estático de tipo RoutedCommand.
De vuelta al XAML. Si te habías fijado el primer Tag que aparece en el archivo dice "Window", dentro de él escribe:
xmlns:local="
...y se desplegará una lista con los Assemblies que tengas en el proyecto. Escoge el de tu aplicación que se ha de llamar algo así como "MiPrimerAppEnWpf (MiPrimerAppEnWpf)". Dentro del Tag del botón que creaste antes escribe:
Command="{x:Static local:Commands.Agregar}"
Y ya tan solo queda que agregues en el Code-Behind el Command a la lista de CommandBindings de la aplicación y especificar cuales son los Manejadores de sus dos eventos: Execute y CanExecute. El código fuente de este ejemplo lo pueden descargar de:
Eso es todo. Hasta una próxima oportunidad...

Leer más...

lunes, 16 de agosto de 2010

Controlar eventos de teclado en C#

En ocasiones, cuando creamos aplicaciones para Windows Forms con C# tenemos la necesidad de capturar los gestos del teclado del usuario para ejecutar determinada acción, ejemplo de eso es cuando para enviar la información de un formulario o iniciar sesión en algún programa presionamos la tecla Enter o cuando presionamos teclas como Ctrl+W en el navegador para cerrar una pestaña.

..

--
En el programa que vamos a hacer, vamos a programar un TextBox que indique las teclas que se han presionado o la combinación de teclas que se está utilizando, después de esto el desarrollo para un método específico debe ser muy sencillo.

Lo primero que haremos, será crear un proyecto de Windows Forms con dos TextBox, uno en el que crearemos la lógica para determinar la tecla o teclas presionadas y otro que muestre la información correspondiente a la acción de usuario.


El primer campo se llamará eventoTxt y el siguiente se llamará informacionTxt. Después de agregar los controles al formulario, debemos ir al método constructor del formulario, para agregar el delegado encargado de las acciones del teclado (sí no sabes qué es un delegado, deberías revisar este articulo, que habla sobre los listeners en ActionScript que son muy parecidos).

En el método constructor se agrega el nuevo delegado por medio de la expresión += y dentro de los paréntesis se debe poner el nombre la función que se va a invocar cuando se produzca el evento KeyDown. En el método validarTeclas, se pueden ver 2 variables que pone por defecto en Visual Studio, para acceder a la información de la tecla presionada debemos ver los atributos del párametro e que contiene toda la información.



Y eso es todo, espero sus comentarios, y los archivos quedan disponibles para trabajarlos con el Framework 4.0.


--

Leer más...

domingo, 20 de junio de 2010

Lenguaje C# - Tercera parte (Condicionales)

Retomando la serie de tutoriales sobre el lenguaje C#, esta vez escribiré sobre el manejo de condicionales. En el tutorial sobre operadores se toco algo del tema, al referirnos a los distintos tipos de operadores que existen en los lenguajes de programación, siendo los operadores parte fundamental en la construcción de condiciones.

Antes de empezar a definir técnicamente, es necesario definir el concepto de condición, las condiciones son preguntas o evaluaciones de los elementos que se presentan antes de poder realizar una acción. Según la RAE una condición (en una de sus tantas definiciones) se refiere a "circunstancias que afectan a un proceso o al estado de una persona o cosa" ahora en programación quizás la definición sea más sencilla.


--

--
En cualquier lenguaje de programación la condición está dada por la evaluación y comparación de dos o más valores siempre teniendo en cuenta que estas condiciones se deben dar en parejas (esto ya lo dije en el anterior tutorial) es decir que las comparaciones solo se pueden hacer de dos en dos, cada una de las comparaciones entrega un valor booleano, es decir solo puede entregar valores verdaderos y/o falsos.

Después de obtener el valor booleano de cada comparación estos se pueden comparar por medio de las compuertas lógicas AND (&&), OR (||) y NOT (!), existen las tablas de verdad que representan los resultados que podemos obtener el comparar los valores de tipo booleano entre ellos.

Tabla de Verdad para AND (&&)

V&&VV
V&&
FF
F&&
VF
F&&
FF


Tabla de Verdad para OR (||)

V||VV
V||
FV
F||
VV
F||
FF

La compuerta lógica representa una negación de una expresión de esta manera:

! verdadero = falso
! falso = verdadero
!(verdadero && falso) = verdadero (recordemos que V y F da falso, al negar la expresión se vuelve verdadero).

Las condiciones en el lenguaje C# al igual que en lenguajes como JAVA, PHP, JavaScript, ActionScript, etc están dadas por la palabra if (sí) seguida de las condiciones entre paréntesis y las acciones dentro de llaves ( {...} ).
if(a == b){
//acciones en caso de que se cumpla la condición
}
Por defecto el if siempre valida la última respuesta contra un verdadero es decir:
bool a = true;
if(a==true) // es lo mismo que decir: if(a)
En caso de que no se cumpla la condición también es posible utilizar la sentencia else (de lo contrario) que representa la otra posibilidad dentro de una condición que tiene número limitado de acciones.

Suponiendo el caso de un interruptor que solo puede estar encendido o apagado la condición sería esta:
bool interruptor = true //está encendido
if(interruptor){ //si el interruptor está encendido
...
}
else{ //de lo contrario
...
}
Suponiendo que se tengan más de dos opciones es posible agregar un if a un else, por ejemplo en el caso de determinar el signo de un número:

int x = valor;
if(x>0){
//x es positivo
}
else if(x<0){
//x es negativo
}
else{
//x es neutro (0 es un valor neutro)
}
Dentro de C# también existe el Switch Case que es una herramienta muy buena en caso de tener una serie de opciones preestablecidas, sin embargo no vamos a tocar esa herramienta todavía.

Esto es todo por este tutorial y dentro de un tiempo seguiré escribiendo, el siguiente tutorial será sobre ciclos repetitivos.

--

Leer más...

lunes, 17 de mayo de 2010

Lenguaje C# - Segunda parte (Operadores)

Siguiendo con la serie de tutoriales para aprender a programar con C#, esta vez escribiré sobre el uso de los operadores, su importancia y algunos ejemplos de como funcionan, no es un tema complicado pero siempre es necesario saber cómo funcionan.


Nota: recuerda que este es el segundo de una serie de tutoriales, el primero esta aquí.

--

--
Lo primero es definir el concepto de operador. Un operador es un símbolo que representa una acción determinada para una variable o valor y así como en español la coma ( , ) indica una pausa corta y el punto ( . ) indica una pausa un poco más larga, en aritmética existen operadores que indican la ejecución de determinado proceso, por ejemplo:
2 + 2 = 4
En este caso el operador es el signo mas ( + ) que indica que se debe hacer una suma o un incremento de dos valores dados.
Los operadores en programación están en categorías dependiendo de su funcionalidad, los primeros son los operadores aritméticos que a su vez se dividen en binarios y unarios, los operadores relacionales y los operadoresLógicos.

Operadores Aritméticos

Binarios: los operadores binarios indican operaciones sencillas de incremento (suma o multiplicación ) y decremento (resta, división y modulo), estos son los operadores binarios:
  • +: representa la suma de dos o más valores o variables.
  • -: representa la resta de dos o más valores o variables.
  • *: representa la multiplicación de dos o más valores o variables.
  • /: representa la división de dos o más valores o variables.
  • %: representa el modulo (obtención del residuo de una división) de dos o más valores o variables.
Unarios: los operadores unarios representan operaciones simplificadas de incremento decremento y modificación de signos, estos son los operadores unarios:
  • ++: Incrementa el valor de una variable en una unidad.
  • --: Decrementa el valor de una variable en una unidad.
  • -: Cambia el signo de una variable, es como multiplicar por -1.
Ejemplos:
  • 2 + 2 = 4
  • 10 - 5 = 5
  • 4 * 6 = 24
  • 8 / 2 = 4
  • 8 % 2 = 0 (cero es el residuo de la división 8/2)
  • c=4; c++; //c=5 (c inicia siendo igual a 4, después del incremento [c++], c vale 5)
  • d=10; d--; //d=9
  • e = -(4) // e = -4
  • f = -(-6) // f = 6 (por regla de signos menos por menos igual a mas)
En conclusión los operadores unarios, simplifican el proceso de modificación de valores ya que al escribir c++ se hace lo mismo que c=c+1.

Operadores Relacionales

Son operadores que se encargan de unir y comparar dos o más valores, siempre se utilizan en comparaciones de parejas y están dadas por los símbolos:
  • = : igual que
  • != : diferente a
  • > : mayor que
  • < : menor que
  • >= : mayor igual que
  • <= : menor igual que
Estos operadores se usan para comparar valores de variables por pares es decir,no se pueden comparar más de 2 valores al tiempo:
  • a > b > c //ERROR
  • (a > b) && (b > c) //BIEN
Cuando se requiere hacer una comparación de varios valores se deben usar losOperadores Lógicos, que son operadores de unión, también llamados compuertas lógicas, estos operadores pueden unir dos o más pares de valores comparados por medio de los operadores relaciones y están dados por estos símbolos:

  • && : Operador AND (Y) quiere decir que todas las condiciones deben ser verdaderas para que se ejecute una acción.
  • || : Operador OR (O) quiere decir que de todas las condiciones solo una debe ser verdadera y se asume que con eso es suficiente para hacer determinada acción.
  • ! : Operdaro NOT (NO) quiere decir que se niega la afirmación para cambiar su valor, es decir cambia de verdadero a falso y de falso a verdadero.
Es muy importante reconocer cuando y como se deben utilizar los operadores lógicos, ya que estos indican cual será el flujo de ejecución de nuestras aplicaciones. Supongamos que estamos desarrollando un formulario en el que todos los datos del usuario son obligatorios, cuando el usuario final presione clic en el botón para guardar los datos, debemos validar si toda la información está debidamente diligenciada, en ese caso usaríamos al operador && ya que este indica que todo debe ser igual a verdadero.

if(nombre.text != "" && apellido.text != "" && telefono.text != "" ) // OK

La condición pregunta por el valor del texto de tres campos de texto (nombre, apellido, telefono), si el valor de texto es diferente de nada (es decir, si está lleno) quiere decir que todo está bien, ahora en caso de que alguno de los campos no cumpla la condición no se puede guardar la información y se le mostrará una alerta o un mensaje al usuario.

Es importante ver como las condiciones están dadas por parejas: telefono.text!= "" estas parejas se forman por valor operador relacional valor y cuando se desea comparar ese resultado por otro valor es necesario implementar los operadores lógicos.

Esto es todo para este tutorial, en el siguiente escribiré sobre las tablas de verdad, y sobre el manejo de condiciones en C#.

Espero sus comentarios.
--

Leer más...

miércoles, 28 de abril de 2010

Lenguaje C# - Primera parte (variables)

Del mismo modo como hice un post para iniciar con el lenguaje ActionScript, voy a hacer uno de como iniciar con C#, ya que he tenido que dar clases de algoritmia con el lenguaje y una constante es la dificultad para aprender el lenguaje desde ceros.

Antes que nada es necesario entender los conceptos básicos de la algoritmia, conceptos como variables, condiciones, ciclos, arreglos son necesarios para empezar a trabajar con cualquier lenguaje de programación, así que haré un pequeño resumen de cada uno de los elementos que acabo de mencionar.
memoria ram
..


Varibles: las variables son espacios en memoria RAM que almacenan información que necesitan los sistemas para su ejecución, ejemplos de variables, son los datos del usuario en el correo electrónico o en Facebook, generalmente están compuestas por Nombre, Tipo de Dato y Valor.

La memoria RAM, funciona como un gran Bus, que tiene espacios disponibles para N cantidad de variables entre más grande sea la memoria RAM, más variables puede manejar sin fallar, y del mismo modo que un bus, la memoria puede funcionar con sobrecupo, sin embargo el rendimiento va a ser lento.

SobreCupo
lo sé, esto no es un bus, pero la imagen expresa lo que quiero decir.

La variable como su nombre lo indica, es un objeto que está cambiando, y por lo tanto no cuenta con información constante, el cambio de la información se ve reflejado en tiempo de ejecución, es decir cuando una aplicación desarrollada es ejecutada al final por el usuario.

En C# la declaración de las variables se hace con un orden especifico, este orden es igual para lenguajes como JAVA. Esta es una demostración del orden en el que se deben declarar las variables.


Como se ve en la imagen, la declaración de las variables esta dada primero que todo por el tipo de dato, esto funciona como una categoría para almacenar información, de esta manera, se pueden crear variables de tipo numéricas, de cadenas de caracteres, de valores verdaderos o falsos, etcétera, después del tipo de dato va el nombre de la variable así pues si lo que vamos a almacenar es la suma de dos números enteros el resultado se debe almacenar en una variable de tipo entero.

int resultado = 2+2;

Nota: Una de las condiciones del lenguaje C#, así como de JAVA y por herencia tomadas del lenguaje C es que todas las sentencias de código deben terminar con punto y coma ( ; ) exceptuando condiciones, ciclos y funciones.

Los tipos de datos más comunes son los numéricos (int, double, float, uint, entre otros), los de caracteres (char y string) y los de valores verdaderos o falsos (bool).

Teniendo en cuenta lo anterior es posible crear una variable de cualquier tipo de dato, pero la condición es que esa variable solo almacenará información de ese tipo de dato, es decir en un contenedor de agua no se puede depositar cerveza (si, yo siempre con el cuento de la cerveza)

Estos son algunos ejemplos de como se crean variables para cada tipo de información:

string saludo = "Hola, cómo estas?";
double gradosCentigrados = 4.5;
int totalManzanas = 50;
bool habilitado = true;

Nota: las variables tienen una definición que está orientada bajo los estándares de la ECMAScript, por eso no tienen espacios ni caracteres especiales, si quieres ver más de eso, puedes leer esto.

Este es el primer articulo de una serie que iré escribiendo en primera medida para retomar el blog y en segunda para explicar los conceptos básicos del lenguaje C#.

Espero sus comentarios.
..

Leer más...

domingo, 28 de marzo de 2010

Novedades del Visual Basic 10 y C# 4

He querido comentarles las novedades que hay en las nuevas versiones de Visual Basic 10 y C# 4. Aunque en un tiempo no muy lejano estos serán lenguajes pares jejeje. Pero mientras eso sucede, en la versión del nuevo Core de Microsoft hay muchas novedades que les mostrare en el transcurso de los siguientes blogs.

--
Una novedad de las tantas que tiene C# 4.0 es el soporte de parámetros por nombre y opcionales, esto vinculado al lenguaje Visual Basic desde que tengo uso de razón. y un tema de los cuales era de discusión con los consultores de los diferentes lenguajes. pero bueno, Una ventaja porque recordemos que teníamos que colocar el famoso Missing, al pasar parámetros que no usaríamos, o simularlo usando Overloads que era algo desgastante para el desarrollador, y mucho mas para la CPU.

Teniendo en cuenta la Imagen, que esta basada sobre el Framework 3.5, nos damos cuenta que para poder simular los parámetros opcionales debíamos declarar muchas sobrecargas.

Sobre Cargas

Teniendo esto como una solución a medias, porque si hablamos de rendimiento, no será la opción mas recomendable. Como todos sabemos cuando se compila una aplicación .net, el resultado es Lenguaje Intermedio (IL) o (MSIL), y si lo examinamos detalladamente lo que relazaría este fuente es ser declarado el método con todos sus parámetros.

Pero en la nueva versión de C# 4, la misma situación se vería de otra manera.

Parametros Opcionales

no es necesario usar sobrecarga ya que podríamos omitir los parámetros que no usaremos. Ahora para llamar los parámetros de este método se podrían realizar por nombre como se observa en la siguiente pintura.

Parametros por Nombre

En VB10 también encontramos numerosas novedades para destacar como los inicializadores de colecciones, esto también posible en C# 4, pero para esta demo lo hare en VB.

Inicializadores

Como vemos, la inicialización de estas colecciones es muy fácil de implementar, esto permitiendo rendimiento al desenvolvedor.

Otra novedad para destacar es la creación de funciones dentro del lamba, bueno aunque se realiza un delegado de igual manera, pero la novedad consiste en la creación de multi-línea como lo muestra en la imagen.

Funciones

Estaré colgando en los siguientes blogs, la continuación de las novedades de los lenguajes.

Saludos y no Olviden Comentar.

también dejo el Fuente a continuación con los dos Lenguajes.


Leer más...

miércoles, 3 de marzo de 2010

Uso de la clase Assembly

¿ Alguna vez se han interesado en conocer los contenidos de un Assembly ?, pues para algunos curiosos como yo, existe en el Framework de .net una clase que permite acceder a estos recursos de una manera realmente sencilla.

Accediendo al NameSpaces using System.Reflection;

Lo primero que se debe hacer es cargar el Assembly por medio del método Load.

 Assembly Ass = null;
/// <summary>
/// Carga un Assembly en base a su nombre
/// (Sin extension .dll, .exe, etc.))
/// </summary>
/// <returns>Obtiene la Información del Assembly
/// </returns>
Assembly CargarAssembly()
{
if (Ass == null)
return Assembly.Load("System.Windows.Forms");
else
return Ass;
}

para Obtener la Información de un determinado método o propiedad. lo pueden apreciar en esta función.

/// <summary>
/// Listado de las Clases del ensamblado
/// </summary>
/// <returns>Obtiene una Clases de Tipos</returns>
public List<InfoClass> GetInformacionClase()
{
/*Lista contenedora de la Informacion de las Clases*/
List<InfoClass> Lista = new List<InfoClass>();
/*Se recorren los tipos del Assembly*/
foreach (InfoClassitem in CargarAssembly().GetTypes())
{
/*Se verifica que sean Clases el Tipo de Filtro */
if (item.IsClass)
{
//Se agregan a la Lista
Lista.Add
(
new InfoClass()
{
Nombre = item.Name,
NombreCompleto = item.FullName,
NombreConstructores =
item.GetConstructors().ToList(),
eventos = item.GetEvents().ToList(),
Interfaces =
item.GetInterfaces().ToList(),
Metodos = item.GetMethods().ToList(),
Propiedades = item.GetProperties().ToList()
}
)
}
}

//se retorna el Contenido de la Colección
return Lista;
}
Para ello cree una clase que me permita encapsular la información en la lista y así poder obtener la información del Assembly, de una forma ordenada.
public class InfoClass
{
public string Nombre { get; set; }
public string NombreCompleto { get; set; }
public List<ConstructorInfo> NombreConstructores{get;set;}
public List<MethodInfo> Metodos { get; set; }
public List<PropertyInfo> Propiedades { get; set; }
public List<EventInfo> eventos { get; set; }
public List<Type> Interfaces { get; set; }
}


y lo único que tienen que hacer, es consumir la lista para mostrar el contenido del Assembly. 


image 


Adjunto el proyecto para que lo analicen y me comenten que más se le puede agregar.



no olviden comentar..

Saludos. Sergio. V.

Leer más...

jueves, 25 de febrero de 2010

Obtener Una Llave Creada en AppSettings del Web.Config

Les dejo la forma de recuperar una llave creada en el web.config desde la etiqueta AppSettings.

Bueno. este fuente es de mi sitio, donde espero terminar pronto, y lo que realizo es una consulta al lector RSS preferido, bueno sin mas preámbulo, lo primero que tienen que hacer es crear la llave desde el web.config de esta manera. Recuerden que estas líneas deben ir dentro del tag <configuration>

 

image

luego de tener creado el tag en el web.config deberán colocar este fuente para poderlo recuperar.

 

image

Saludos.  Sergio.

Leer más...

Authenticatión Basada en ASP.NET

he querido mostrar el uso de las clases encargadas de generar las autenticaciones de usuario en asp.net espero el recurso sea de gran ayuda..

 

Saludos,   
       Sergio V…

Leer más...

Utilizar la Interfaz IEnumerable

Según la definición suministrada por MSDN.

Expone el enumerador, que admite una iteración simple en una colección de un tipo especificado. Además de permitir manipular las colecciones de objetos de una manera facil de implementar.

para esta demo veremos el uso de esta importante Interfaz, que nos ayudara mucho en nuestros desarrollos, teniendo como ejemplo una clase creada llamada Persona. Lo que quiero mostrar es una grilla con la información de personas cargadas desde una coleccion de personas. de esta manera.
Fijense que esta función retorna una coleccion de personas muy facilmente, y me aseguro que son personas haciendo uso de generics. lo que hace falta es volcar la información almacenada en la grilla.




De esta manera agrego la información a la grilla utilizando la propiedad DataSource, que permite almacenar colecciones de objetos. El resultado de la demo seria



Saludos…
Sergio.

Leer más...

lunes, 22 de febrero de 2010

Encapsulamiento

Una de las maneras más eficientes de mantener la seguridad en las aplicaciones Web y de Escritorio en cualquier lenguaje de programación es el Encapsulamiento, además de brindar seguridad a las aplicaciones permite tener una organización muy precisa a la hora de desarrollar sin embargo en muchas ocasiones se vuelve tedioso manejar todos los métodos de encapsulamiento de un objeto, en especial cuando son muchos los atributos de la clase.


Empecemos por definir ciertos conceptos básicos de la programación orientada a objetos (POO). Está compuesta por clases, una clase en términos coloquiales, es el plano de un objeto, es donde se deben definir todas las características de los objetos de la vida real o de objetos abstractos, en POO siempre se habla de dos conceptos claves: Atributos y Métodos.

Atributos: Son las características de los objetos, por ejemplo, los atributos de una persona son, nombre, apellidos, número de documento, estatura, color de piel, peso, etcétera.

Métodos: Son las funciones o acciones del objeto en caso de la persona, los métodos son, caminar, hablar, reír, pensar, gritar, etcétera.

Una de las premisas de POO, es que la mayoría, sino todos, los atributos de un objeto deben ser privados, esto para tener seguridad sobre los valores del objeto, pero entonces...¿cómo acceder a los atributos de una clase?, la respuesta, encapsulamiento, los métodos de encapsulamiento se utilizan sólo cuando es apropiado entregar los datos a otro objeto que solicite la información. Un ejemplo por favor.

Piensa en tus atributos, tienes nombres, apellidos, bla, bla bla, esto ya lo habíamos dicho, todos esos atributos son privados, ¿pero si son privados...porque la gente me llama por mi nombre? fácil, por los métodos de encapsulamiento que permiten al objeto entregar la información que sea solicitada por otro objeto... sigamos con el ejemplo, te encuentras en un Bar, a lo lejos en la penumbra vez una sombra que se acerca a tu mesa, estás sólo/a era de esperarse porque nadie te quiere...(sí estás leyendo esto es porque eres programador, los programadores no tienen amigos, eso todo el mundo lo sabe)...pero la sombra se sigue acercando, cuando la reducida luz que se encuentra sobre tu persona, alcanza a iluminar ligeramente al desconocido/a vez que es lo que estabas esperando, sí eres hombre, es la mujer más hermosa del mundo y te tiene ganas. Sí eres mujer es un fulano guapo que te tiene ganas, él/ella atravesó todo el bar para conocer tu atributo privado nombre, tu utilizas tú método de des-encapsulamiento para entregarle a el/la desconocido/a ese valor...pfff entonces, ¿para qué encapsulo si al final voy a entregar el valor a cualquier desconocido?. Imagina la misma escena, sólo que esta vez no es el amor de tu vida sino un ladrón que te va a hacer el paseo millonario y que esta vez no está interesado en tu nombre sino en tu clave de la tarjeta, ¿tu se lo entregas?, NO! por eso es importante encapsular los atributos de una clase, para que los objetos sólo puedan entregar los valores que sean programados por ti y no por nadie más.

Ahora si, vamos al código, en esta oportunidad voy a utilizar C#, sin embargo en la mayoría de los lenguajes es igual o por lo menos muy parecido. Sigamos con el ejemplo, voy a usar la clase Persona, que tendrá 3 atributos básicos:

namespace Encapsulamiento{

class Persona{

//primero que todo definimos los atributos

private string nombre;

private string apellidos;

private int clave;


}

}


Teniendo la clase lista, ahora lo que debemos hacer es generar los métodos de encapsulamiento, en C# es muy fácil, en el código se encuentra la explicación:


namespace Encapsulamiento

{

class Persona

{

//primero que todo definimos los atributos

private string nombre;

private string apellidos;

private int clave;


//Los métodos de encapsulamiento NO pueden llamarse igual

//a los atributos, por eso la diferencia está en la mayuscula

public string Nombre

{

//GET es el métodos que utilizaras para entregar tu nombre al desconocido

get { return nombre; }

//SET es el método que se utiliza para asignar un valor al atributo

//cuando naciste tu mamá y tu papá utilizarón este bloque para bautizarte

set { nombre = value; }

}


public string Apellidos

{

get { return apellidos; }

set { apellidos = value; }

}


public int Clave

{

get { return clave; }

set { clave = value; }

}

}

}



Básicamente, el encapsulamiento se usa para dar más seguridad en tus aplicaciones, para evitar que la información se filtre y para dar mucho más orden en las clases.

Dejen sus comentarios.

Leer más...