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

lunes, 25 de junio de 2007

Relajandose las manos con las Propiedades

Quien no a tenido que desarrollar clases donde las propiedades son puros get y set sin mayor lógica que aquello (podría suceder al aplicar un model view presenter)(aunque obviamente suele suceder que debemos validar un valor, para agregarlo de una u otra manera). Pues bien, el caso de que sólo queremos aliviarnos el trabajo de escritura, tanto para ahorro de código, como para que no suframos de tendinitis a tan temprana edad podemos usar las propiedades de esta manera (te recuerda a una interface?):

public class DatosPersonales{
public string Nombre {get;set;}
public string Apellido {get;set;}
public string Direccion {get;set;}
}



luego, para utilizarla:

DatosPersonales misDatos= new DatosPersonales();
misDatos.Nombre="Perico";
misDatos.Apellido="Los Palotes";
misDatos.Direccion="Bajo el Puente s/n";


tataan!!!.

Personalmente, habría preferido la utilización de la palabra property (creo que seria mas listo o en su defecto, agregarla y dejar las 2 opciones...por si alguien solo desea usar un get o un set), como por ejemplo:
property string Nombre;
property string Apellido;
property string Direccion;


Pero bueno, es lo que hay, yo solo lo comento :P

Yield en C#

Básicamente, yield te permite poder retornar valores intermedios de una función, mediante la implementación de la Interfaz IEnumerable.
Esto quiere decir que podemos capturar cada iteración que pueda poseer un método, como por ejemplo:

using System;
using System.Collections;
public class Moledor
{
//Por que moledor?, porque toma un string y lo imprime caracter por caracter
public static IEnumerable Moledor(string palabra) {
int count = palabra.Length;
for (int i = 0; i < count; i++) {
yield return palabra[i];
}
}

static void Main()
{
foreach(char c in Moledor("Paralelepipedo")){
Console.WriteLine(c);
}
}
}

Ahora bien, otro ejemplo (que no es mío) es :

using System;
using System.Collections;
public class List
{
public static IEnumerable Power(int number, int exponent)
{
int counter = 0;
int result = 1;
while (counter++ < exponent)
{
result = result * number;
yield return result;
}
}

static void Main()
{
// Display powers of 2 up to the exponent 8:
foreach (int i in Power(2, 8))
{
Console.Write("{0} ", i);
}
}
}

Esto quiere decir: La operación 2^8 (dos elevado a 8) nos daría por resultado 256. Pero que sucede si queremos obtener los valores intermedios también (2^1 , 2^2,...,2^8)...entonces use yield :D nice!!!

martes, 27 de marzo de 2007

Patrones de Diseño

Un patrón describe un problema que ocurre una y otra vez en nuestro entorno, así como la solución a dicho problema, de tal manera que se pueda aplicar dicha solución miles de veces sin tener que hacer lo mismo dos veces.
Los patrones de diseño se separan en:

1- Patrones de Creación
2- Patrones Estruturales
3- Patrones de Comportamiento


Patrones de Creación: Abstraen el proceso de creación de instancias. Ayudan a hacer a un sistema independiente de como se crean, se componen y representan sus objetivos.

- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton

Patrones Estructurales: se ocupan de cómo se combinan las clases y los objetos para formar estructuras más grandes.(güau)

- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy

Patrones de Comportamiento:

- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor

...luego terminare algunas definiciones con ejemplos en C#