Miguel Angel Morán

Machines take me by surprise with great frecuency...

May 2008 - Artículos

Asiste al Evento de lanzamiento Comunidad del DF

La Comunidad .NET de la Ciudad de México y DevelopersDotNet te invitan al evento de Lanzamiento de VS2008, SQL2008 y Windows 2008

¡Asiste!

Fecha:
13 de Mayo

Hora:
11 a.m. – 7.p.m

Lugar:
ITAM

Dirección:

Río Hondo # 1
Col. Progreso Tizapán
C.P. 01080 Del. Álvaro Obregón
México D.F.

Agenda:

11:00 a 12:30
Héctor Obregón -Interoperabilidad entre Código Nativo en C++ (con MFC), Windows Forms y WPF

12:30 a 2:00
Misael Monterroca - Silverlight 2.0 Beta 1

2:00 a 3:00
Tiempo disponible para salir a comer.

3:00 a 4:30
Miguel Ángel Moran - Nuevos elementos sintácticos con C# 3.0 y VB 9.0

4:30 a 5:45
Alfredo Ceballos – Experiencias de Usuario Enriquecidas en Web y Windows.

5:45 a 7:00
Raúl Guerrero –  SQL Server 2008

Mapa:

http://www.itam.mx/es/ubicacion/riohondo1.html
http://www.itam.mx/es/ubicacion/riohondo2.html

Colaboración en Software Gurú: Más allá de los objetos, C# funcional

Como les comenté en posts anteriores sigo medio obsesionado con estas cosas de la programación alterna (dinámica, declarativa, funcional etc.) Les dejo un link para que visiten el sitio de la revista Software Gurú donde salió publicado un artículo mío denominado "Más allá de los objetos, C# como lenguaje funcional", en la edición de Mayo-Julio de 2008.

¡Cómprenla!

El link es:

http://www.sg.com.mx/content/view/713

Traté de explicar con varios ejemplos de como usar C# con características funcionales, me faltó un buen pero ps el espacio era limitado, igual acá profundizamos más en algunos posts posteriores.

El código fuente es este, abran una nueva aplicación de consola con Visual Studio 2008 (.NET Framework 3.5) y denle Copy Paste al siguiente código.

Lean el artículo, espero que les guste y cualquier duda me la pueden hace llegar a través de los foros de este sitio o a mi mail starcatchingboy@gmail.com

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Threading;
using System.Linq.Expressions;
 
namespace Devworx.SG
{
 
    class Program
    {
             
        //Función de orden superior
        public static Func<int,int> ConvertirMoneda(string pstrMoneda) {
        return (int pintCantidad) => 
        { return pstrMoneda == "EURO" ? pintCantidad * 15 : pintCantidad * 10;  };
       }
 
 
        static void Main()
        {
 
          //Expresiones lambda CUBO
            
            Func<int, int> lintResultado = (pintNum) => { return pintNum * pintNum; };
            Console.WriteLine(lintResultado(3));
 
 
            //Inferencia de tipos
            var lobjMsg= "Hola";
            lobjMsg.GetType().ToString();
            Console.WriteLine("El tipo inferido es " + lobjMsg.GetType().ToString());
 
            //Invocación a Función de orden superior con parámetro euro
 
            var lobjConvertidor = ConvertirMoneda("EURO");
            Console.WriteLine("La FOS regresa " + lobjConvertidor(20) + " si se le invoca con euro");
 
            //Invocación a Función de orden superior con parámetro dolar
 
            lobjConvertidor = ConvertirMoneda("DOLAR");
            Console.WriteLine("La FOS regresa " + lobjConvertidor(20) + " si se le invoca con dolar" );
 
 
            //Sumatoria sin for, al modo funcional
            Console.WriteLine("La sumatoria de 100 es: " + Enumerable.Range(1, 100).Sum());
 
            Console.ReadKey();
   
        }
 
    }
}

Un abrazo a tod@s y
¡Feliz Codificación!