You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.8 KiB
C#

6 years ago
using Study.DelegateSeries.Core.Calculator;
using System;
6 years ago
using System.Collections.Generic;
using System.Text;
6 years ago
namespace Study.DelegateSeries.Core
{
/// <summary>
6 years ago
/// 实例化委托
6 years ago
/// </summary>
6 years ago
public class InstanceDelegate
6 years ago
{
6 years ago
/// <summary>
/// 基础语法
/// (c#1.0 开始提供)
/// </summary>
6 years ago
public CalculatorDelegate BaseInstance()
6 years ago
{
6 years ago
CalculatorDelegate operation = new CalculatorDelegate(new Addition().Add);
6 years ago
return operation;
}
/// <summary>
/// c#2.0 简写方法
/// (基于类型推断)
/// </summary>
6 years ago
public CalculatorDelegate AutoTypeInstance()
6 years ago
{
6 years ago
CalculatorDelegate operation = new Subtraction().Difference;
6 years ago
return operation;
}
/// <summary>
/// c#2.0 匿名委托
/// (使用匿名方法实例化的委托)
/// </summary>
6 years ago
public CalculatorDelegate AnonymousInstance()
6 years ago
{
//c# 2.0基础语法
6 years ago
CalculatorDelegate operation = delegate (decimal a, decimal b) { return (a * b) * (a * b); };
6 years ago
return operation;
}
/// <summary>
/// c#3.0 Lambda表达式
/// (实质:"Lambda表达式"是一个匿名函数)
/// </summary>
6 years ago
public CalculatorDelegate LambdaInstance()
6 years ago
{
6 years ago
CalculatorDelegate operation = (decimal a, decimal b) => { return a * a + b * b + 2 * a * b; };
6 years ago
//自动推断
6 years ago
CalculatorDelegate operation2 = (a, b) => { return a * a + b * b + 2 * a * b; };
6 years ago
//{}只有一句时的简写
6 years ago
CalculatorDelegate operation3 = (a, b) => a * a + b * b + 2 * a * b;
6 years ago
return operation;
}
6 years ago
}
}