基本信息
源码名称:C# delegate、Func、Action 使用示例
源码大小:1.62KB
文件格式:.cs
开发语言:C#
更新时间:2014-06-07
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


class Program
    {
        private delegate int GetSum(List<Product> list); // First Definition Delegate
        static void Main(string[] args)
        {
            //C# delegate

            List<Product> list = new List<Product>()
            {
                    new Product{ProductName="Iphone4s", Price=3000},
                new Product{ProductName="Iphone5",Price=4000},
                new Product{ProductName="Ipad4",Price=3500}
            };
            GetSum s = GetTotal;
            Console.WriteLine(s(list));

            //C# Func

            //Method A
            Func<List<Product>, int> func = GetTotal;
            Console.WriteLine(func(list));

            //Method B
            Func<List<Product>, int> func1 = delegate(List<Product> listA)
            {
                
                return listA.Sum(p => p.Price);
            };
            Console.WriteLine(func1(list));
            
            //Method C
            Func<List<Product>,int> func2=listB=>{

                return listB.Sum(p => p.Price);
            };
            Console.WriteLine(func2(list));

            //C# Action


            Action<List<Product>> action = listC =>
            {
                listC.ForEach(p => Console.WriteLine(p.Price));
            };

            action(list);
            Console.Read();
        
        }

        public static  int GetTotal(List<Product> list)
        {
            return list.Select(p => p.Price).Sum();
        }
    }

    public class Product
    {
        public string ProductName{get;set;}
        public int Price{get;set;}
    }