C#编程尽量使用接口(转)

.NET框架包括类和接口,在编写程序的时候,你可能知道正在用.NET的哪个类。然而,在这种情况下如果你用.NET支持的接口而不是它的类来编程时,代码会变得更加稳定、可用性会更高。请分析下面的代码: 

private void LoadList (object [] items, ListBox l) 

 for (int i = 0; i < items.Length;i++) 
  l.Items.Add (items[i].ToString ()); 


  这个函数从一个可为任何对象的数组中加载ListBox,这段代码被限定为只能使用数组。假想过些时候你发现那些对象存在数据库中,或别的集合中。那么你需要修改程序来使用不同的集合类型。如果你用ICollection接口来写那段程序,你就不用修改那段程序了,对于任何实现ICollection接口的类型它都能很好的工作: 

private void LoadList (ICollection items,ListBox l) 

  foreach (object o in items) 


  l.Items.Add (o.ToString ()); 


  ICollection被数组和所有System.Collection中的集合实现。此外,多维数组也支持ICollection接口。如果那还不够的话,数据库.NET类同样支持ICollection接口。用接口写的这个函数不用需改就可以才许多中情况下使用。

转载于:https://www.cnblogs.com/poor/archive/2009/03/02/1401573.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache 重写规则的常见应用 (rewrite)

本文出自:http://www.linuxforum.net 作者:吴阿亭 Jephe wu (2001-09-05 08:00:00) 一:目的 本文旨在提供如何用Apache重写规则来解决一些常见的URL重写方法的问题&#xff0c;通过常见的 实例给用户一些使用重写规则的基本方法和线索。 二:为什么需要用重写规则&#xff1…

python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

今天为大家带来的内容是&#xff1a;干货分享&#xff1a;python爬虫模拟浏览器的两种方法实例分析&#xff08;赶紧收藏&#xff09; 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操作技巧与使用注意事项,需要的朋友可以参…

vue-cli3

github&#xff1a;https://github.com/vuejs/vue-cli org&#xff1a;https://cli.vuejs.org/ guide&#xff1a;https://cli.vuejs.org/guide/ config&#xff1a;https://cli.vuejs.org/config/ 转载于:https://www.cnblogs.com/veritas-sj/p/10147789.html

Indy中判断邮件来源

首先从TidMessage中获得邮件的头信息&#xff1a; strHeader:aIdMessage.Headers.text; 然后&#xff0c;用正则表达式取出Received: vReceiveIP:GetNeedStrByPerlReg(strHeader,(Received:)(.)(])); 再取出X-Originating-IP&#xff1a; vOriIP:GetNeedStrByPerlReg(strHea…

用jQuery实现弹出窗口/弹出div层

原文链接&#xff1a;http://hi.baidu.com/awz_tiger/item/863cfc10c4bb0f6171d5e8d9 http://blog.163.com/qiuxinke2006126/blog/static/24885580201131763139536/ http://hi.baidu.com/kilwin/blog/item/f4cfaf2695375920c9955947.html 用div层代替传统的弹出窗口已经变得很…

模块定义文件导出类_浓缩的就是精华——ES6模块精炼讲解

概述在 ES6 前&#xff0c; 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库&#xff0c; 和基于 CMD 规范的模块化库)。ES6 引入了模块化&#xff0c;其设计思想是在编译时就能确定模块的依赖关系&#xff0c;以及输入和输出的变量。ES6 的模块化分为…

关于快速开发和设计应用系统的一些个人的意见

作为程序员&#xff0c;经常会为我们的客户去开发和设计各种应用系统&#xff0c;比如OA /CRM/物流调度/客户服务/电子政务。。。及各种管理信息系统&#xff0c;我们经常会去开发和实现这样的一些系统&#xff0c;每周、每月、每年经常都要去做这样的一些开发工作&#xff0c;…

Jquery1.6版本后attr的变化

原文链接&#xff1a;http://www.cnblogs.com/-run/archive/2011/11/16/2251569.html Jquery1.6版本后attr的变化 Jquery1.6版本后 attr 改动后的效果&#xff1a; jquery1.6版本&#xff1a; 下文来自www.jquery.com The difference betweenattributes and properties can b…

idea main scanner 输入_哇晒,你竟然不知道idea的 Live Templates

最近公司新近来一名程序猿&#xff0c;在写代码时&#xff0c;美美写到System.out.println的时候&#xff0c;都要一母不差的用键盘敲上去&#xff0c;我问他你之前有用过eclipse中的快捷方法syso吗&#xff1f;于是&#xff0c;我给他介绍了一下&#xff0c;在idea中如何自定义…

Android开发需要了解的 IM 知识

引言即便在通讯如此发达的今天&#xff0c;IM 也依然是诸多场景下非常重要的基础能力。因此做为 一名 Android 开发&#xff0c;不可避免的会遇到一些IM 相关的需求或问题。本文以一个Android开发的角度来讲述IM 开发相关的基础知识。想要阅读更多技术干货、行业洞察&#xff0…

偷梁换柱做自己的封装系统

偷梁换柱做自己的封装系统&#xff01;菜鸟一开始都想把自己的信息加到系统里&#xff0c;但封装系统只会一点&#xff01;但我们可“拿来”&#xff0c;我们可以用偷梁换柱的方法来修改别人的系统&#xff0c;本文以雨林的GHOST5.0系统为例。一、准备工作1、当然是下载一个自己…

JQuery 1.6+ checkbox 状态选择

示例&#xff1a; HTML: <form><table><tr><td><input type"checkbox" id"select_all"/></td></tr><tr><td><input type"checkbox" name"select[]"/></td></…

台电u盘量产工具_简单几步,让U盘起死回生

如今&#xff0c;虽说云存储风靡&#xff0c;但U盘仍存在价值&#xff0c;毕竟在很多场合并不方便上网&#xff0c;即便如此网上存储有时也并不方便&#xff0c;也不安全。与此同时&#xff0c;如果是大文件存储&#xff0c;云盘上传和下载速度非常慢&#xff0c;并不适合海量数…

PXC集群常见错误(一)

欢迎关注MySQL 8.0必知必会系列课程。MySQL8.0必知必会-自动化部署 https://edu.51cto.com/course/16368.htmlMySQL8.0必知必会之参数标准化配置 https://edu.51cto.com/course/16358.html1.Cant start server: Bind on TCP/IP port: Address already in use…

获取GridView中RowCommand的当前选中行的索引或主键Id

获取GridView中RowCommand的当前索引行 前台添加一模版列,里面添加一个LinkButton前台 (如果在后台代码中用e.CommandArgument取值的话前台代码就必须在按钮中设置CommandArgument的值&#xff0c;值为绑定的数据库字段<asp:TemplateField HeaderText"操作"> …

系统架构师 项目经理 哪个更有前景_中央空调加地暖与五恒系统,哪个更省钱?...

每逢严冬酷暑,人们都会感叹空调是最伟大的发明,并且随着科技发展还在不断进化。从烤火取暖到空调和地暖的供暖,从纸扇电扇的吹风到空调的制冷,人们的需求正在不断提高,于是,为了满足人们的需求&#xff0c;市场上又衍生出了家装五恒系统。 恒温、恒湿、恒氧、恒洁、恒静这…

软件架构基本原则

软件架构本质上是绘制一幅复杂素描所打的草稿&#xff0c;我还说&#xff0c;如果你罩得住&#xff0c;可以不需要这个草稿。但这只是“理论上”&#xff0c;我们写软件&#xff0c;基本上不是在写只有几千行的代码的小程序&#xff0c;而是写数千万行的大型程序。《道德经》说…

Smarty目录结构和子目录路径问题

原文链接&#xff1a;http://bbs.csdn.net/topics/80223905 问题 1).最初在模板文件中使用了绝对路径&#xff08;相对于站点根的路径 ).如在system_info.tpl中图片是这样显示的<img src"/templates/default/images/logo.gif"/>这样当系统发布时&#xff0c;…

c++直角坐标系与极坐标系的转换_一篇阅读量高达2百6十多万的关于坐标系和投影的相关知识探讨...

本文转载于CSDN作者rsyaoxin这是一篇关于坐标和投影的「神文」截止目前浏览量已达2698239是相关文章中不可打破的神话...文末有本文作者推荐的两款坐标转换的小工具下载链接回想一下&#xff0c;接触遥感专业也有几个年头了&#xff0c;而现在越来越偏离遥感了&#xff0c;突然…

c# xmlhttp POST提取远程webservice数据

public string cancel(string StudentID,string Mobile){string datanull;data "<?xml version1.0 encodingutf-8?><soap:Envelope xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:xsdhttp://www.w3.org/2001/XMLSchema xmlns:soaphttp://schemas.…