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
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
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!!!
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#
Suscribirse a:
Entradas (Atom)