sábado, 7 de mayo de 2011

Clases en C# (DLL)

Una Clase es una plantilla para un objeto.Una Clase define las operaciones que un objeto puede realizar y define un valor que mantiene el estado del objeto, los componentes principales de una clase son: métodos, eventos y propiedades.

Una instancia de una clase es un objeto, se accede a la funcionalidad de un objeto invocando sus métodos y accediendo a sus propiedades, eventos y campos.

Una clase utiliza modificadores para especificar la accesibilidad de la clase y sus componentes, los componentes de una clase son llamados miembros por lo que existen diferentes tipos de miembros.

Una referencia se refiere a una instancia, una instancia es la creación de un objeto del tipo clase que se está declarando.

Una clase utiliza ninguno, uno o más constructores para ayudar a definir la instancia de una clase. Existe una palabra reservada llamada this que sirve para hacer referencia a la clase actual en el ámbito en el cual es utilizada. Cuando se hace referencia a una variable de instancia que tiene el mismo nombre de un parámetro se debe utilizar this.name.

Al crear y manipular objetos no es necesario administrar la memoria que estos ocupan ya que existe un mecanismo que se encarga de esto llamado garbage collector (recolector de basura), pero es una buena práctica no olvidar liberar los recursos.


Bueno, esa es la parte teórica, ahora vamos a programar.... (Vamos a crear una .dll en C#)

Click en Archivo luego en Nuevo Proyecto
en Visual C#, seleccionamos Windows y luego Biblioteca de Clases... le asignamos un nombre en mi caso es ClasesComunes.

Colocan esto.... (Borren todo el archivo, claro algunas cosas son iguales)


sing System;
using System.Collections.Generic;
using System.Text;
namespace ClasesComunes
{
public class Class1
{
}

public class Bicicleta
{
private string modelo_bici;
private double Precio_bici;
private int NumeroDeVelocidades;
private int Velocidad;
private string seri_bici;

public Bicicleta(string serie, int velocidades)
{
seri_bici = serie;
NumeroDeVelocidades = velocidades;
}
public string Serie
{
get
{
return seri_bici;
}
}

public string Modelo
{
get
{
return modelo_bici;
}
set
{
modelo_bici = value;
}
}

public double Precio
{
get
{
return Precio_bici;
}
set
{
if (value > 0)
{
Precio_bici = value;
}
}
}
public void Acelerar(int km)
{
Velocidad = Velocidad + km;
}
public void Frenar()
{
if (Velocidad > 0)
{
Velocidad = Velocidad - 1;
}
}

public int ConsultarVelocidad()
{
return Velocidad;
}

}
}


Esta, es la clase, al compilarla crea una dll que luego debemos copiar en otro proyecto para luego implementarla.

lunes, 2 de mayo de 2011

Convertir ASCII to String y al contrario

Hola chicos

Esta es la forma de convertir un código ASC to Int y al contrario.....
Para que sirve esto?? fácil... si tengo la letra A, puedo convertirlo a su ASCII Alt + 65= A.
y de esta forma podría llenar un arreglo de string con un ciclo porqué?

Porque A=65, B=66, C=67, están de forma consecutiva...

El método es el siguiente...

private int Asc(string s)
{
return Encoding.ASCII.GetBytes(s)[0];
}

El método anterior convierte un String como A en su equivalente ASCII => 65.


Teniendo tres TextBox y un botón programamos lo siguiente...

string convertido;

int ascii = Asc(textBox1.Text.Trim());
convertido = Convert.ToChar(ascii).ToString();
textBox2.Text = ascii.ToString();

textBox3.Text = convertido.ToString();

De esa forma, ingresamos un numero, y en el siguiente TextBox nos nuestra el numero y el de abajo nos muestra la letra nuevamente.....



OTRO CASO DE APLICACIÓN........


Si tengo un arreglo de string y lo quisiera llenar con letras por medio de un ciclo lo podemos hacer de la siguiente manera....

Declaramos el string:

string [] ABC = new string [26];

Ahora lo llenamos de Letras


int indice=0;

for (int x=65; x<91;x++)
{
ABC[indice] = Convert.ToChar(x).ToString();
indice++;
}

De esta forma, el arreglo está lleno... solo impriman las posiciones y listo.....

Evento click de algún botón
For (int x=0;x<26;x++)
{
MessageBox.Show(ABC[x]);
}

Forma No iterativa (Sin usar ciclo)

ABC[0]="A";
ABC[1]="B";
ABC[2]="C";
ABC[3]="D";
ABC[4]="E";
ABC[5]="F";
ABC[6]="G";

.......

Todo esto puede servir para encriptar strings....