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();
}
}
}