2008年11月17日
摘要: 现在很多人认为面向对象思想的出现要比面向过程晚很多,其实这是错误的!早在1967年,Alan Kay就提出了面向对象的概念。虽然面向对象出现的如此地早,但是其“工业化”进程要到20世纪90年代了。现在,有很多人认为面向对象与面向过程是格格不入的,而且C语言无法写出面向对象的代码。不过在我看来这些言论都是片面的:其实面向对象和面向过程并不矛盾,他们只是互补的关系。面向对象注重... 阅读全文
posted @ 2008-11-17 14:02 blacktear 阅读(3121) 评论(36) 推荐(0) 编辑
  2008年11月14日
摘要: 前两天在与朋友聊天时提到了事件,故写下此文与他分享对事件的理解。因不敢独享所以拿出来请大家指正。 在进行WinForm编程时,事件这个概念无时无刻都围绕身边。点个按钮就是一个事件。在.Net中,事件这个概念总是让人觉得比较复杂,有着深奥的理论,而且其中的delegate关键字本身就让人觉得很深奥。 其实呢,事件并没有那么复杂而且深奥。只是MS为了让程序员写的代码少一点,鼓捣出个代理的概念。其实... 阅读全文
posted @ 2008-11-14 11:06 blacktear 阅读(626) 评论(1) 推荐(0) 编辑
  2008年11月13日
摘要: 在处理文件时,我们希望写出的代码是健壮的。如果一个长时间运行的文件处理程序对文件的操作没有做到健壮性就会出现一些问题。 比如一个HTTP服务器,它主要是把文件打开然后读取其中的内容,发送到请求者。如果一旦网络连接出问题,从而导致正在传输的文件没有关闭,那么想修改这个文件的内容我们只能重启这个HTTP服务器了。 为了写出健壮的文件处理代码,一般我们都会用到try-catch-finally语句块: 1FileStream file = null; 2try 3{ 4 file = new FileStream(path, mode, access); 5 //do something 6} 7catch (IOException e) 8{ 9 throw e; 10} 11finally 12{ 13 if (file != null) 14 { 15 file.Close(); 16 } 17} 如果你的代码中充满了这种模式的代码是不是会觉得很烦人呢?如果要是读 阅读全文
posted @ 2008-11-13 09:11 blacktear 阅读(252) 评论(0) 推荐(0) 编辑
  2008年11月12日
摘要: 在通常的情况下,我们非常习惯于用foreach来迭代容器中的元素。虽然比起for循环来说,foreach可以让我们少打一些字母。 如果我们有下面的需求:把一个整数的容器中所有元素乘2,然后保存在新的容器中,那么我们通常会写下下面的代码: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.Cod... 阅读全文
posted @ 2008-11-12 14:28 blacktear 阅读(393) 评论(2) 推荐(0) 编辑