码迷,mamicode.com
首页 > Windows程序 > 详细

C#基础难委托之模板方法

时间:2020-06-23 22:56:33      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:ace   make   name   简单   color   ret   new   factory   ogr   

using System;
namespace ConsoleTese
{
    class Program
    {
        public delegate int dele(int a, int b);
        static void Main(string[] args)
        {
            ProductFactory productFactory = new ProductFactory();
            WrapFation wrapFation = new WrapFation();

            Func<Product> func = new Func<Product>(productFactory.MakePizza);
            Func<Product> func1 = new Func<Product>(productFactory.MakeToyCar);

            Box box= wrapFation.WrapProduct(func);
            Box box1=wrapFation.WrapProduct(func1);

            Console.WriteLine(box.Pro.Name);
            Console.WriteLine(box1.Pro.Name);
        }
        class Product
        {
            public string Name { get; set; }
        }
        class Box
        {
            public Product Pro { get; set; }
        }
        class WrapFation
        {
            public Box WrapProduct(Func<Product> getProduct)
            {
                Box box = new Box();
                Product product = getProduct.Invoke();
                box.Pro = product;
                return box;
            }
        }
        class ProductFactory
        {
            public Product MakePizza()
            {
                Product product = new Product();
                product.Name = "Pizza";
                return product;
            }
            public Product MakeToyCar()
            {
                Product product = new Product();
                product.Name = "Toy Car";
                return product;
            }
        }
        
    }  
}

一个简单的委托

C#基础难委托之模板方法

标签:ace   make   name   简单   color   ret   new   factory   ogr   

原文地址:https://www.cnblogs.com/zxbls/p/13185005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!