sábado, 14 de julio de 2007

Threading y Punteros a funciones en C#

C# rescata nuevamente la facilidad que tenia C de poder utilizar punteros a funciones.   Claro que, como el resto de las cosas en C#, los implementa de manera segura, haciendo uso de la construcción delegate como este ejemplo:

Public delegate MyTipoDePuntero(String arg)

De esta manera se asegura que los punteros que se almacenen en las variables de tipo MyTipoDePuntero esten declaradas como void fun(String).

 

Esto permite en C#, implementar un modelo de threading algo mas libre que el que se define en Java, mientras en java es necesario definir una clase que implemente la interfaz Runnable para hacer uso de threading, e C# podemos instanciar el nuevo thread especificando simplemente, cual es el método a ser llamado para ejecutarlo.   Este método puede estar definido en cualquier clase sin importar las interfaces que implemente, puede ser un método de clase o un método de instancia!

domingo, 8 de julio de 2007

Learning C#

Impresionante volver a ver esa elegancia heredada del legendario lenguaje C (por favor sáquese el sombrero al leer "lenguaje C").
Ya, póngase el sombrero de nuevo, gracias.
Hasta tiene manejo de punteros como C, solo que...jejeje... las piezas de código que necesiten manejar punteros hay que encerrarlas en bloques unsafe!!!.
Bueno, hay que reconocer que un poco inseguro era operar con los punteros.
unsafe {
int var;
int *pvar = &var;
*pvar = 10;
}
Identico... Un poema!!