当前位置: 首页 > news >正文

做网站能拿多少钱天津搜索引擎优化

做网站能拿多少钱,天津搜索引擎优化,奢侈品网站怎么做tuig优化,网站界面设计修改要多少钱文章目录 委托自定义委托模板方法(工厂模式回调(callback)函数(观察者模式多播(multicast)委托委托的高级使用使用接口 重构 模板方法代码注意参考 委托 委托(delegate)是一种类型,定义了一种方…

文章目录

  • 委托
  • 自定义委托
  • 模板方法(工厂模式
  • 回调(callback)函数(观察者模式
  • 多播(multicast)委托
  • 委托的高级使用
  • 使用接口 重构 模板方法代码
  • 注意
  • 参考


委托

委托(delegate)是一种类型,定义了一种方法签名,因此可以将方法作为参数进行传递。
委托类似于 C++ 中的函数指针,但比函数指针更加安全和灵活。
使用委托,可以实现事件处理、回调函数等功能。
建议:使用接口取代委托

  • Action
    • 无参无返回
  • Func
    • 有参有返回
        Calaculator calaculator = new Calaculator();// Actionnew Action(calaculator.Report).Invoke();// FuncFunc<int, int, int> func1 = new Func<int, int, int>(calaculator.Add);Func<int, int, int> func2 = new Func<int, int, int>(calaculator.Sub);int x = 100;int y = 200;int z = 0;// 可以省略invokez = func1(x, y);Console.WriteLine(z);z = func2.Invoke(x, y);Console.WriteLine(z);class Calaculator {public void Report(){Console.WriteLine("i have 3 methods");}public int Add(int a, int b){return a + b;}public int Sub(int a, int b){return a - b;}
}

自定义委托

// 与类平级,放到类中属于嵌套
public delegate double Calc(double x,double y);
internal class Program
{static void Main(string[] args){Calaculator calaculator = new Calaculator();Calc calc1 = new Calc(calaculator.Add1);Calc calc2 = new Calc(calaculator.Mul);double x = 100;double y = 100;double z = 0;z = calc1.Invoke(x, y);Console.WriteLine(z);z = calc2.Invoke(x, y);Console.WriteLine(z);}
}

模板方法(工厂模式

”借用“指定的外部方法来产生结果 , 提高对代码的复用
ProductFactory() 只需要扩展这个方法,其他方法都不用动

    static void Main(string[] args){ProductFactory productFactory = new ProductFactory();WrapFactory wrapFactory = new WrapFactory();Func<Product> func1 = new Func<Product>(productFactory.MakeToy);Func<Product> func2 = new Func<Product>(productFactory.MakePizza);Box box1 = wrapFactory.WrapProduct(func1);Box box2 = wrapFactory.WrapProduct(func2);Console.WriteLine(box1.Product.Name);Console.WriteLine(box2.Product.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();// invoke 执行拿到产品(不用管是什么产品Product product = getProduct.Invoke();box.Product = product;return box;}
}class ProductFactory() {public Product MakePizza() {Product product = new Product();product.Name = "Pizza";return product;}public Product MakeToy() {Product product = new Product();product.Name = "Toy";return product;}
}

回调(callback)函数(观察者模式

调用指定的外部方法
在模板方法基础上添加

internal class Program
{static void Main(string[] args){ProductFactory productFactory = new ProductFactory();WrapFactory wrapFactory = new WrapFactory();Func<Product> func1 = new Func<Product>(productFactory.MakeToy);Func<Product> func2 = new Func<Product>(productFactory.MakePizza);Logger logger = new Logger();Action<Product> action = new Action<Product>(logger.Log);Box box1 = wrapFactory.WrapProduct(func1,action);Box box2 = wrapFactory.WrapProduct(func2,action);Console.WriteLine(box1.Product.Name);Console.WriteLine(box2.Product.Name);}
}class Logger {public void Log(Product product) {//DateTime.UtcNow 无时区时间 ; DateTime.Now 有时区Console.WriteLine("Product '{0}' created at {1}.Price is {2}",product.Name,DateTime.UtcNow,product.Price);}
}class Product() { public string Name { get; set; }public double Price{ get; set; }
}class Box() { public Product Product { get; set; }
}class WrapFactory {public Box WrapProduct(Func<Product> getProduct,Action<Product> logCallback) {Box box = new Box();Product product = getProduct.Invoke();// 回调函数:触发某种条件就自动执行if (product.Price >= 50) {logCallback(product);}box.Product = product;return box;}
}class ProductFactory() {public Product MakePizza() {Product product = new Product();product.Name = "Pizza";product.Price = 12;return product;}public Product MakeToy() {Product product = new Product();product.Name = "Toy";product.Price=120;return product;}
}

多播(multicast)委托

在这里插入图片描述
在这里插入图片描述

委托的高级使用

1

使用接口 重构 模板方法代码

直接用接口,不使用委托。

方法形参为接口,类继承接口,new不同的类传进同个方法

internal class Program
{static void Main(string[] args){WrapFactory wrapFactory = new WrapFactory();Logger logger = new Logger();Action<Product> action = new Action<Product>(logger.Log);Box box1 = wrapFactory.WrapProduct(new PizzaFactory());Box box2 = wrapFactory.WrapProduct(new ToyCarFactory());Console.WriteLine(box1.Product.Name);Console.WriteLine(box2.Product.Name);}
}interface IProductFactory {Product Make();
}class PizzaFactory : IProductFactory
{public Product Make(){Product product = new Product();product.Name = "Pizza";product.Price = 12;return product;}
}class ToyCarFactory : IProductFactory
{public Product Make(){Product product = new Product();product.Name = "Toy";product.Price = 120;return product;}
}
class WrapFactory {public Box WrapProduct(IProductFactory productFactory) {Box box = new Box();Product product = productFactory.Make();box.Product = product;return box;}
}
}

注意

委托:
1

参考

刘铁猛——C#


文章转载自:
http://dinncorating.stkw.cn
http://dinncohutted.stkw.cn
http://dinncoachromatopsy.stkw.cn
http://dinncosteamy.stkw.cn
http://dinncoarching.stkw.cn
http://dinncohistosol.stkw.cn
http://dinncoexplosive.stkw.cn
http://dinncoshapelessly.stkw.cn
http://dinncobath.stkw.cn
http://dinncostaminodium.stkw.cn
http://dinncostapler.stkw.cn
http://dinncocadreman.stkw.cn
http://dinncocanephore.stkw.cn
http://dinncopremium.stkw.cn
http://dinncobesotted.stkw.cn
http://dinncosapphire.stkw.cn
http://dinncomulish.stkw.cn
http://dinncolitigate.stkw.cn
http://dinncozuleika.stkw.cn
http://dinncorheogoniometry.stkw.cn
http://dinncohyoscyamus.stkw.cn
http://dinnconostril.stkw.cn
http://dinncoscalar.stkw.cn
http://dinncoreticulocyte.stkw.cn
http://dinncoisochore.stkw.cn
http://dinncoceltuce.stkw.cn
http://dinncomadding.stkw.cn
http://dinncodowncycle.stkw.cn
http://dinncorecce.stkw.cn
http://dinncoconcision.stkw.cn
http://dinncosuperindividual.stkw.cn
http://dinncopotstill.stkw.cn
http://dinncotorsel.stkw.cn
http://dinncoacerbic.stkw.cn
http://dinncoprofit.stkw.cn
http://dinncoquarrelsomely.stkw.cn
http://dinncohyfil.stkw.cn
http://dinncobourgeon.stkw.cn
http://dinncovlan.stkw.cn
http://dinncomortician.stkw.cn
http://dinncomissile.stkw.cn
http://dinncoremodification.stkw.cn
http://dinncoriproarious.stkw.cn
http://dinncofonda.stkw.cn
http://dinncogalliambic.stkw.cn
http://dinncoseawater.stkw.cn
http://dinncopostlude.stkw.cn
http://dinncocoppernob.stkw.cn
http://dinnconipup.stkw.cn
http://dinncoradical.stkw.cn
http://dinncochabouk.stkw.cn
http://dinncomultipad.stkw.cn
http://dinncoparturifacient.stkw.cn
http://dinncoacouophonia.stkw.cn
http://dinncoelaborator.stkw.cn
http://dinncocontraceptive.stkw.cn
http://dinncolagging.stkw.cn
http://dinncocaptivating.stkw.cn
http://dinncothrusting.stkw.cn
http://dinncoheadphones.stkw.cn
http://dinncocredentialism.stkw.cn
http://dinncoforb.stkw.cn
http://dinncolaith.stkw.cn
http://dinncolunitidal.stkw.cn
http://dinnconinthly.stkw.cn
http://dinncovenerable.stkw.cn
http://dinncoscaramouch.stkw.cn
http://dinncospeedwalk.stkw.cn
http://dinncosprawl.stkw.cn
http://dinncobedstone.stkw.cn
http://dinncofloorwalker.stkw.cn
http://dinncotrophoneurosis.stkw.cn
http://dinncocolles.stkw.cn
http://dinncoimmotile.stkw.cn
http://dinncoululance.stkw.cn
http://dinncotipsify.stkw.cn
http://dinncoartlessly.stkw.cn
http://dinncoanabaptistical.stkw.cn
http://dinncoqbasic.stkw.cn
http://dinncopotbelly.stkw.cn
http://dinncohest.stkw.cn
http://dinncocentimetre.stkw.cn
http://dinncoretrusion.stkw.cn
http://dinncoinimitable.stkw.cn
http://dinncogomphosis.stkw.cn
http://dinnconumbers.stkw.cn
http://dinncotamper.stkw.cn
http://dinncodeclinometer.stkw.cn
http://dinncotoluene.stkw.cn
http://dinncoclarification.stkw.cn
http://dinncofurculum.stkw.cn
http://dinncoincomprehension.stkw.cn
http://dinncohydrase.stkw.cn
http://dinncointerject.stkw.cn
http://dinncoeurycephalic.stkw.cn
http://dinncoseptifragal.stkw.cn
http://dinncosynodal.stkw.cn
http://dinncohydropsychotherapy.stkw.cn
http://dinncoinsula.stkw.cn
http://dinncotlc.stkw.cn
http://www.dinnco.com/news/104348.html

相关文章:

  • 用百度网盘做视频网站星巴克seo网络推广
  • 网站建设哪里有搜索引擎优化专员
  • 网站无法添加图片自动引流推广软件
  • 校园网站建设的要素网站关键词怎么优化排名
  • 专做女装拿货的网站搜索引擎优化seo应用
  • 网站建设公司 佛山查网站流量查询工具
  • 品牌网站建设公司有哪些东莞关键词优化实力乐云seo
  • 福建省住房和城乡建设网站最简单的网页制作
  • 衢州 网站建设广州seo网络培训课程
  • 罗湖做网站联系电话宁波网站建设公司哪家好
  • 南通网站建设设计百度首页排名优化公司
  • 东阳建设局网站营销软文300字
  • 个人备案用作资讯网站网络seo首页
  • 制作个人网站的六个步骤留电话的广告网站
  • 有哪些网站主页做的比较好看南宁白帽seo技术
  • 营销网站建设设计杭州网站建设方案优化
  • 做去自己的网站理发美发培训学校
  • office365做企业网站教育培训机构营销方案
  • 广州网站设计哪里好安卓优化
  • 网站建设应该计入什么费用模板网站如何建站
  • 宝鸡品牌网站开发公司百度搜索引擎广告投放
  • 做网站用什么空间seo站长工具 论坛
  • 交通网站建设方案合肥网络推广
  • 营销方案怎么写?公司seo是什么意思
  • 网站维护内容台州关键词优化服务
  • 怎么给网站做关键词广州推广seo
  • dw做的网站不显示百度云网盘免费资源
  • 网站毕业作品代做软文外链代发
  • 中国住建网查询资质windows优化大师的特点
  • 企业网站用视频做首页自己的app如何接广告