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<boolint> discount)
        {
            
int magicDiscount = discount(false);
            
int magicDiscount2 = discount(true);
            Console.WriteLine(magicDiscount);
            Console.WriteLine(magicDiscount2);
            Console.ReadLine();
        }
    }
}


posted on 2009-12-22 15:46  Jack Han  阅读(184)  评论(0编辑  收藏  举报

导航