8,497
社区成员
发帖
与我相关
我的任务
分享
delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = delegate(int x) { return x * x; };
int j = myDelegate(5); //j = 25
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LambdaTest
{
class Program
{
static void Main(string[] args)
{
OrderDetail od = new OrderDetail() { Quantity = 10, UnitPrice = 11 };
// 1.1 的代理
SomeDelegate del1 = new SomeDelegate(Fun);
int total = Sum(del1, od);
Console.WriteLine("total: {0}", total);
Console.WriteLine("======= .NET 1.1 ======");
// 2.0 的匿名代理
SomeDelegate del2_1 = Fun;
total = Sum(del2_1, od);
Console.WriteLine("total: {0}", total);
SomeDelegate del2_2 = delegate(OrderDetail d) { return d.UnitPrice * d.Quantity; };
total = Sum(del2_2, od);
Console.WriteLine("total: {0}", total);
Console.WriteLine("======= .NET 2.0 ======");
// 3.5 的Lambda
SomeDelegate del3 = d => d.Quantity * d.UnitPrice;
total = Sum(del3, od);
Console.WriteLine("total: {0}", total);
Console.WriteLine("======= .NET 3.5 ======");
Console.Read();
}
private static int Fun(OrderDetail od)
{
return od.UnitPrice * od.Quantity;
}
private delegate int SomeDelegate(OrderDetail od);
static int Sum(SomeDelegate func, OrderDetail od)
{
return func(od);
}
}
class OrderDetail
{
public int UnitPrice { get; set; }
public int Quantity { get; set; }
}
}
delegate int del(int i);
private static int Function1(int i)
{
return i * i;
}
static void Main(string[] args)
{
int j = Function1(5); //j = 25
}
delegate int del(int i);
private int Function1(int i)
{
return i * i;
}
static void Main(string[] args)
{
del myDelegate = this.Function1;
int j = myDelegate(5); //j = 25
}
delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
}