Para estos casos, Microsoft agrego algunas características a C#. En C# 2.0 los métodos anónimos. en C# 3.0, estos vienen a ser aun mejores usando lambda expressions. Las expresiones lambda son la forma preferida cuando se escribe nuevo código.
El siguiente ejemplo:
using System;
namespace LambdaExpressionCreateDelegate
{
class Program
{
public delegate int Calculate(int x, int y);
static void Main(string[] args)
{
Calculate calc = (x, y) => x + y;
Console.WriteLine(calc(3, 4)); // presenta 7
calc = (x, y) => x * y;
Console.WriteLine(calc(3, 4)); // presenta 12
}
}
}
La expresión en ingles se usa go and goes y se lee: "x and y goes to adding x and y". Voy a realizar una lectura como se haría en un lenguaje cercano al de las matemáticas, se leeria así, "para toda X y Yen la expresión se han de sumar X y Y".
La función lambda no especifica nombre como los métodos. Es por eso las funciones lambda son llamadas anonymus fuctions (funciones anónimas) . No tiene que especificar un valor de return de forma explicita. El compilador infiere este de forma automática desde su expresión lambda. Y en el caso del ejemplo, los tipos de los parámetros X y Y pueden no ser especificados de forma explicita.
Como lo puede ver una expresión lambda puede ser compacta. Si la expresión lambda tiene solamente un parámetro, usted puede aun remover los paréntesis alrededor de los parámetros.
Puede crear lambdas que abarquen múltiples declaraciones. Puede hacerlo agregando las llaves ( {} ) alrededor de las declaraciones que forman la lambda. Como en el siguiente ejemplo
using System;
namespace LambdaExpMultipleStatement
{
class Program
{
public delegate int Calculate(int x, int y);
public static Calculate calc =
(x, y) =>
{
Console.WriteLine("Adding numbers");
return x + y;
};
static void Main(string[] args)
{
Console.WriteLine("Resultado de expresion lambda {0} ", calc(3, 4));
}
}
}
Referencia:
Exam Ref. 70-483 Programming in C#
No hay comentarios.:
Publicar un comentario