亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于委托的模板方法的應用

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace ModelAndCallback

{

? ? class Program

? ? {

? ? ? ? static void Main(string[] args)

? ? ? ? {

? ? ? ? ? ? ProductFactory productFactory = new ProductFactory();

? ? ? ? ? ? WrapFactory wrapFactory = new WrapFactory();


? ? ? ? ? ? Func<Product> func1 = new Func<Product>(productFactory.MakePizze);

? ? ? ? ? ? Func<Product> func2 = new Func<Product>(productFactory.MakeToyCar);


? ? ? ? ? ? //Box box1 = wrapFactory.WrapProduct(func1);

? ? ? ? ? ? //Box box2 = wrapFactory.WrapProduct(func2);

? ? ? ? ? ? //Console.WriteLine(box1.Product.Name);

? ? ? ? ? ? //Console.WriteLine(box2.Product.Name);


? ? ? ? ? ? Console.WriteLine(func1.Invoke().Name);

? ? ? ? ? ? Console.WriteLine(func2.Invoke().Name);

? ? ? ? }

? ? }


? ? class Product

? ? {

? ? ? ? public string Name { get; set; }

? ? }


? ? class Box

? ? {

? ? ? ? public Product Product { get; set; }

? ? }


? ? class WrapFactory

? ? {

? ? ? ? public Box WrapProduct(Func<Product> getProduct)

? ? ? ? {

? ? ? ? ? ? Box box = new Box();

? ? ? ? ? ? box.Product = getProduct.Invoke();

? ? ? ? ? ? return box;

? ? ? ? }

? ? }


? ? class ProductFactory

? ? {

? ? ? ? public Product MakePizze()

? ? ? ? {

? ? ? ? ? ? Product product = new Product();

? ? ? ? ? ? product.Name = "Pizze";

? ? ? ? ? ? return product;

? ? ? ? }


? ? ? ? public Product MakeToyCar()

? ? ? ? {

? ? ? ? ? ? Product product = new Product();

? ? ? ? ? ? product.Name = "ToyCar";

? ? ? ? ? ? return product;

? ? ? ? }

? ? }

}


https://img1.sycdn.imooc.com//5ba10964000126dd05480233.jpghttps://img1.sycdn.imooc.com//5ba109890001a4bf05230330.jpg

圖一中注釋掉的寫法與沒有注釋掉的寫法debug出來的結果都是一樣的,因為注釋的語句看不懂,所以想問下注釋部分的解釋以及我沒注釋部分的寫法是否合理。求大神解答下,謝謝!


正在回答

1 回答

都是取product.name,沒毛病啊

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于委托的模板方法的應用

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號