大连建网站多少钱做网站每年包多少流量
web/
2025/9/29 10:00:11/
文章来源:
大连建网站多少钱,做网站每年包多少流量,中国建设银行预约网站首页,oppo游戏中心官网“优秀的程序员的标准之一是#xff1a;编写更易于扩展的代码”图片#xff1a;奥森公园的向日葵 拍摄于2022年7月23日01—问题缘起上一篇中#xff0c;我们知道ListT的是基于数组实现的可变长度的列表。很多小伙伴发现#xff0c;ListT即有Count属性又有C…“优秀的程序员的标准之一是编写更易于扩展的代码”图片奥森公园的向日葵 拍摄于2022年7月23日01—问题缘起上一篇中我们知道ListT的是基于数组实现的可变长度的列表。很多小伙伴发现ListT即有Count属性又有Count()方法并且有人做过性能测试Count属性比Count()方法更快因此得出结论Count属性是直接返回一个计算好的值Count()方法需要遍历列表计算长度。事实是怎样的像微软这样全球顶级的开发团队是否会在基础类库中提供两个一样的功能我们来探究一下。02—源码探究Count属性是ListT提供的只读属性直接返回私有变量_size记录的元素数量。Count()方法是System.Linq.Enumerable中提供的扩展方法ListT实现接口IListT间接实现接口ICollectionT由源码可知通过ListT对象调用Count()方法返回的是ListT对象的Count属性二者并没有区别。Count()方法存在的意义是什么呢03—软件设计原则微软设计原则参数设计原则中有一条请使用提供成员所需功能的最低派生参数类型。 例如假设你想要设计这样一种方法它可枚举集合并将每个项目输出到控制台。 此类方法应将 IEnumerable 用作参数而不是使用 ArrayList 或 IList 等内容。微软文档https://learn.microsoft.com/zh-cn/dotnet/standard/design-guidelines/parameter-design微软设计原则建议在满足所需功能的情况下应使用IEnumerable而不是使用ArrayList或IList这也叫说明了Count()方法存在的意义因为在IEnumerable中没有Count属性只能通过Count()方法间接获取元素数量。这里体现了面向对象开发原则SOLID使用最低派生类型职责单一其子类型实现类易于替换代码可扩展性更好符合开放封闭原则。如何看待Count()方法比Count属性慢04—正确认识性能问题客观的看待性能问题应当从相对性能和绝对性能两方面进行交叉对比从而得出一个中肯的结论。Count()方法比Count属性大概慢10ns不同设备环境会有差异也就是百万分之十毫秒一亿分之一秒绝对性能差异微乎其微而大部分性能测试为了体现两者的性能差异循环上百万次再对两者进行对比通过相对性能展示性能差异殊不知Count属性本身耗时极低相对性能差异被夸大。这一点一定要认识清楚同样的有文章分析在ListT集合中Exists()比Any()性能好也是相同的原理切不可被片面的言论左右。软件开发过程就是一个决策取舍的过程你是希望获得更高的性能还是更好的扩展性相信每个小伙伴心中都有自己的答案。喜欢的朋友可以点赞转发加关注
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83830.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!