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

杭州网站建设交易深圳整站seo

杭州网站建设交易,深圳整站seo,婚庆公司简介,计算机网络营销策划方案今天的文章是因为再给一个朋友讲这个的时候随手记录下整理出来的。说白了就是把前辈们曾经给我吹过的我又吹了出去。泛型#xff1a;是C# FrameWork 2.0 时代 加入进来的#xff0c;可以说对与Net开发人员来说泛型是无处不再的#xff0c;喜欢看源码的同学#xff0c;可能会… 今天的文章是因为再给一个朋友讲这个的时候随手记录下整理出来的。说白了就是把前辈们曾经给我吹过的我又吹了出去。  泛型是C# FrameWork 2.0 时代 加入进来的可以说对与Net开发人员来说泛型是无处不再的喜欢看源码的同学可能会有发现包括MVC里面基本上也是有很多发泛型还有很多设计模式也需要搭配泛型来实现包括项目架构泛型的存在是代码利用率复用性都大大的提升了有时候Object 也是可以起到相同的作用为什么使用泛型 为什么不是用Obj ,我们来看一下  下面我们列出两个最基础的方法 /// summary/// 返回int/// /summary/// param nameI/param/// returns/returnspublic int ShowInt(int I) {return I; }/// summary/// 返回String/// /summary/// param nameI/param/// returns/returnspublic string ShowString (string I) {return I; }  上面的两个方法自从参数 进来到参数出去的这一个过程中我们没有进行参数方面的转换也就是说单纯的针对的参数类型上面我们程序代码是没有损失任何的性能的。一位没有存在拆箱装箱的过程。  我们在看两个方法我们使用了在C# 1.0 时代就存在的一个类型 是Object   /// summary/// 返回int/// /summary/// param nameI/param/// returns/returnspublic int ShowString(object I) {return Convert.ToInt32(I); }/// summary/// 返回String/// /summary/// param nameI/param/// returns/returnspublic string ShowString(object I) {return I.ToString(); }   这里我们使用的阐述类型是Obj ,Object 是引用类型也是所有类型的父类可以包容所有的类型但是就单说处理参数类型的时候我们需要去转换一下才能进行使用在这个转换的过程中我们已经损失了性能但是使用Obj 的时候我们可以和成一个方法减少代码量提升了代码的复用率。  比如 /// summary/// 返回object/// /summary/// param nameI/param/// returns/returnspublic object ShowType(object I) {return I; }  现在简写成为这样后我们是一个公用的方法虽然说内部不用去转换了但是在调用后还是需要类型的转换同样的需要损失性能。中间性能之所以会损失是因为Obj是引用类型存放在堆上的假如说我们传的参数是int或其他的值类型来使用我们的公共方法就会进行一次包装的过程把存放在栈里面的值类型移动包装成为引用类型存放到堆里面使参数符合当前方法的类型这个过成也就是装箱需要重新分配内存但是我们在使用的时候又需要把他拿出来进行一下装换转换为值类型这个过程又称为拆箱  我们在来使用一个方法使用 2.0时代出现的泛型 /// summary/// 返回 T/// /summary/// param nameParameter/param/// returns/returnspublic T Shows(T Parameter) {return Parameter; }  为什么会使用泛型 是因为泛型方法再调用的时候有延时声明的功能这里的延时声明式只参数泛型里面的 T 其实咱们也可以理解为 占位符具体为谁占位的等到调用的时候才会知道。  如下 int parameter 0;//在调用的时候声明参数类型 parameter new Common().Showint(parameter);//如果调用的时候不去声明的话JIT编译的时候野会帮我们自动计算parameter new Common().Show(parameter);  这个时候不会损耗什么性能。延时声明也是咱们在进行框架设计的时候常用的一种思想提高框架的性能。泛型不只是可以声明泛型方法  泛型类 /// summary/// CURD 操作类/// /summary/// typeparam nameT/typeparampublic class ConmonClassT {public void Add(T s) { };public void Update(T s) { };public void Del(T s) { };public void Select(T s) { }; }  这样使用的话在咱们真正的项目我们可以把某些基础的操作用一个类去搞定使用的时候调用就是了减少代码的冗余增加复用性重用率。  泛型接口 /// summary/// CURD 操作接口类/// /summary/// typeparam nameT/typeparampublic interface ConmonInterfaceT { T Add(T s); T Update(T s); T Del(T s); T Select(T s); }  泛型委托//泛型委托public delegate T GetHandlerT();  我想以上的操作在我们开发项目的时候会经常见到或使用到  以上代码需要我们注意的时候泛型类不能被继承如果想要继承的话需要在继承的时候给我们的不确定参数确定下参数类型。包括泛型接口也是一样的。  如下 public class Son : ConmonClassCommon {};/// summary/// 实现泛型接口/// /summarypublic class SonInterface : ConmonInterfaceCommon {public Common Add(Common s) {throw new NotImplementedException(); }public Common Del(Common s) {throw new NotImplementedException(); }public Common Select(Common s) {throw new NotImplementedException(); }public Common Update(Common s) {throw new NotImplementedException(); } }  如果说不指定泛型类型的参数类型式其实我们一样是可以继承的。需用继承者同样是泛型的。  建议长期使用Net的同学我想我们需要加强一下泛型的认识了因为在NetCore中常常会使用依赖注入在使用泛型类的时候我们可能会多少有点麻烦的泛型方法相对来说要简单的如果说要想让我们的框架实现高度的内聚大家需要多多理解。  泛型的约束多重约束相当重要代表我们是否能很好的利用泛型。  泛型的约束类型大概分为如下几种引用类型约束表明泛型参数只能是引用类型的值类型约束表明泛型参数只能是值类型的无参数构造函数约束泛型是可以实例化的。基类约束必须满足基类中的某些属性接口约束必须满足接口中的某些属性具体的就不代码了。原文地址https://www.cnblogs.com/szlblog/p/10703770.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.pierceye.com/news/153139/

相关文章:

  • 济南历城区网站建设2022年没封网站直接进入
  • 平面设计和网站建设哪个好icp备案可以自己搞吗
  • 平面电商网站建设初级网页设计
  • 个人购物网站怎么备案数据调查的权威网站
  • 网站规划和建设的基本要求100个无水印短视频素材免费
  • 河北住房和建设厅官方网站如何建设运输网站
  • 网络品牌网站建设价格网站设计部
  • 用自己照片做衣服 杯子的是哪个网站深圳东门老街
  • 四川省乐山市建设银行网站互联网保险行业发展报告
  • 厦门手机网站建设是什么山东泰安昨晚发生的事
  • 山西网站开发公司园林景观设计公司计划书
  • 吉林平安建设网站项城市建设规划局网站
  • 购物网站er图经营管理培训课程
  • 男女明星直接做的视频网站wordpress设置的页面跳转失败
  • 建企业网站价格wordpress稳定吗
  • 免费1级做爰网站研发项目管理系统
  • 建设网站好公司石家庄招聘求职信息网
  • 杭州市建筑业协会官网在线seo推广软件
  • 网站建设策划师管理网站建设
  • 做搜狗网站排名首页公司取名生成器免费
  • 用模板搭建的网站备案吗官方网站平台下载软件
  • 网站建设和网络推广方案济宁网站建设那家好
  • 做网站用哪个软件写比较好电商运营团队结构图
  • 建设领域信用系统网站邢台网站建设讯息
  • 建设网站技术人员先进事迹无锡有哪些做网站的公司
  • 2016网站设计欣赏企业网站推广建设
  • 国外简洁的网站跨境电商服务平台有哪些
  • 国内做网站技术支持 网站建设
  • 绍兴做团购的网站织梦转易优cms
  • 百度 网站 质量度扬州市工程建设招标网