simple Func
using System;
// Func 和 Action 的唯一区别在于一个有返回值, 一个没有返回值
namespace test
{
class Program
{
static void Main(string[] args)
{
//new ShoppingCart().Process(new Func<bool, int>(Calculator.Calculate));
// can also be
new ShoppingCart().Process(Calculator.Calculate);
}
}
class Calculator
{
public static int Calculate(bool special)
{
int discount = 0;
if ( special )
{
discount = 20;
}
else if (DateTime.Now.Hour < 12)
{
discount = 5;
}
else if (DateTime.Now.Hour < 20)
{
discount = 10;
}
else
{
discount = 15;
}
return discount;
}
}
class ShoppingCart
{
public void Process(Func<bool, int> discount)
{
int magicDiscount = discount(false);
int magicDiscount2 = discount(true);
Console.WriteLine(magicDiscount);
Console.WriteLine(magicDiscount2);
Console.ReadLine();
}
}
}
// Func 和 Action 的唯一区别在于一个有返回值, 一个没有返回值
namespace test
{
class Program
{
static void Main(string[] args)
{
//new ShoppingCart().Process(new Func<bool, int>(Calculator.Calculate));
// can also be
new ShoppingCart().Process(Calculator.Calculate);
}
}
class Calculator
{
public static int Calculate(bool special)
{
int discount = 0;
if ( special )
{
discount = 20;
}
else if (DateTime.Now.Hour < 12)
{
discount = 5;
}
else if (DateTime.Now.Hour < 20)
{
discount = 10;
}
else
{
discount = 15;
}
return discount;
}
}
class ShoppingCart
{
public void Process(Func<bool, int> discount)
{
int magicDiscount = discount(false);
int magicDiscount2 = discount(true);
Console.WriteLine(magicDiscount);
Console.WriteLine(magicDiscount2);
Console.ReadLine();
}
}
}