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

广东长海建设工程有限公司网站制作和维系一个网站的费用

广东长海建设工程有限公司网站,制作和维系一个网站的费用,php 遍历网站,网站空间 按流量计费总所周知#xff0c;.NET出现在.net framework 2.0#xff0c;为什么要在2.0引入泛型那#xff0c;因为微软在开始开发.net框架时并没有想过多个类型参数传输时对方法的重构#xff0c;这样一来#xff0c;开发人员就要面对传输多种类型的参数而不得以写多个方法#xff…   总所周知.NET出现在.net framework 2.0为什么要在2.0引入泛型那因为微软在开始开发.net框架时并没有想过多个类型参数传输时对方法的重构这样一来开发人员就要面对传输多种类型的参数而不得以写多个方法但是开发者的智慧是无限的创造性也由此被挖掘出来在泛型之前便有开发者为了提到代码利用率便想到使用object类型为参数类型来传递参数这无疑解决了多个类型的参数传输时并需要写多个方法的问题。那么object类型为什么能实现接受多个不同类型的参数那有了object类型还为什么要设计泛型那object类型又有那么弊端那其实有点基础的开发人员应该都知道object类型是所有类型的父类通过里氏转换原则我们知道所有父类出现的地方都可以用子类替换这样就可以接收多个参数了同时因为object类型转换装拆箱对性能的影响在2.0时微软推出了泛型。      下面我们引入泛型的声明和调用 public static void ShowT(T tParameter){ Console.WriteLine($This is{typeof(GenericClass)}ShowT,paratype{tParameter.GetType()},value{tParameter};}    打印的内容我们没必要关注我们只看方法头我们可以看到方法头和参数里面加了T这个字母其实这就是泛型声明的规则泛型在声明时需要在方法头加上T(T parm),注意尖括号里面的字母是可变的可以是任何字母但是尖括号里面的字母必须和参数里面的字母要一致这样一个方法就声明好了。   下面我们接下来研究下泛型的调用过程泛型是如何在未命名参数类型的情况下来声明参数类型的在下面程序入口我写了两个List的类型 class Program     {         static void Main(string[] args)         {             try             {                                  Console.WriteLine(typeof(Listint));                 Console.WriteLine(typeof(Liststring));     运行我们发现TList虽然在调用时不知道传的什么类型但是加了占位符那么占位符是什么那?我们从dos里面看到1对这个就是占位符。那么定位符是在什么时候声明的那上代码 class Program     {         static void Main(string[] args)         {             try             {                 int iParameter 123;                 long lParameter 456;                 string sParameter abc;                 object oParameter 123456;                 Console.WriteLine(**********************);                 CommonClass.ShowInt(iParameter);                 CommonClass.ShowLong(lParameter);                 CommonClass.ShowString(sParameter);                 Console.WriteLine(**********************);                 CommonClass.ShowObject(oParameter);                 CommonClass.ShowObject(iParameter);                 CommonClass.ShowObject(lParameter);                 CommonClass.ShowObject(sParameter);                 Console.WriteLine(**********************);                 GenericClass.Showobject(oParameter);                 GenericClass.Showint(iParameter);                 //GenericClass.Showint(lParameter);//指定类型必须和参数一致                 GenericClass.Show(iParameter);//不指定由编译器自动推算                 GenericClass.Showlong(lParameter);                 GenericClass.Showstring(sParameter);                 Console.WriteLine(**********************);              }             catch (Exception ex)             {                 Console.WriteLine(ex.Message);             }             Console.Read();         }     } }   这里我就不赘述了直接说一下吧其实泛型在声明的时候不知道什么类型用了占位符是在调用的时候编译器自动推算也可以在调用时指定这是一种延迟思想延迟声明把参数类型的声明延迟到调用的时候推迟一切可以推迟的这也是设计模式的一种思想。编译以后的泛型和普通方法就一样了所以不会影响性能可以想象成又一个重载 泛型的好处一个方法支持多种参数类型 性能无损耗。 泛型支持多个参数可想而知但是真的无损耗吗不清楚好对一切我们要持一种怀疑的态度去看科学的自然会被证实那么这里我们测试一下。用到类Stopwatch long commonTime 0;                 long objectTime 0;                 long genericTime 0;                 {                     Stopwatch watch new Stopwatch();                     watch.Start();                     for (int i 0; i 100000000; i)                     {                         CommonClass.ShowObject(iParameter);                     }                     watch.Stop();                     objectTime watch.ElapsedMilliseconds;                 }                 {                     Stopwatch watch new Stopwatch();                     watch.Start();                     for (int i 0; i 100000000; i)                     {                         CommonClass.ShowInt(iParameter);                     }                     watch.Stop();                     commonTime watch.ElapsedMilliseconds;                 }                 {                     Stopwatch watch new Stopwatch();                     watch.Start();                     for (int i 0; i 100000000; i)                     {                         GenericClass.Showint(iParameter);                     }                     watch.Stop();                     genericTime watch.ElapsedMilliseconds;                 }                 Console.WriteLine(commonTime{0}, commonTime);                 Console.WriteLine(objectTime{0}, objectTime);                 Console.WriteLine(genericTime{0}, genericTime); 里面的三个类分别是object类型和普通类以及泛型分别对int、string以及实体类型的调用我直接上答案     通过图上给出的运行时间泛型是最快的然后是普通方法然后是object类型大家要知道我这是在运行1亿次的情况下的所得的结果其实我们还得出一个结论那就是object类型确实有性能影响单并不罪大恶极也不是不能用的也要看程序所处的环境。     补充一点泛型不是语法糖语法糖是编译器提供带的功能不要误解了 原文地址 http://www.cnblogs.com/renzhitian/p/6202917.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://wiki.neutronadmin.com/news/53964/

相关文章:

  • 深圳电信网站备案做网页价格
  • 网站无法上传图片wordpress获取评论用户名
  • 做国内打不开的网站吗网站站建设建技设术技术
  • 企业网站建站公司郑州吉林省吉林市昌邑区
  • 如何搭建网站教程视频网页制作基础教程第二版答案
  • 工业网站开发商wordpress女装小说
  • 中国建设网官方网站企业网银愿意做cps的网站
  • 永久免费ppt下载网站网站服务器建设教程视频
  • 5网站建设公司可以写代码的网站
  • 网站建设税率多少站长之家ip地址归属查询
  • 烟台网站建设托管如何替换网站ico图标
  • 优惠券领取网站开发郑州做响应式网站
  • 沈阳建网站公司wordpress和shopify区别
  • 贵州省清镇市建设学校网站做网站没有成本费用如何做账
  • 南通网站seo网站建设项目策划书范文
  • 网站页面设计图片素材网页设计师证书什么时候考
  • 新手什么网站做外贸加盟微信小程序代理
  • 网站虚拟主机虚拟空间网站建设策划书编制
  • 免费网站使用牟长青 做网站推广的四个基本要点
  • 企业网站建设的一般原则包括国家企业信用公示信息年报全国
  • 网站备案前置审批类型免费表格模板网站
  • 做医疗的网站三合一网站建设用途
  • 临淄网站建设多少钱优质手机网站建设
  • 厦门网站建设哪家好厦门最好的网站建设湖南住建云网站
  • 哪些门户网站可以做推广wordpress随机注册
  • 京东网站的建设与发展前景邢台润联科技有限公司
  • 无锡企业网站制作一般多少钱如何设计网站风格
  • 网赌网站怎么做的企业公众号如何开通
  • 网站设计专业wordpress顶部通知栏公告
  • 做网站漯河诸暨建设局网站