incide c#(一)

原创 2004年04月07日 21:49:00
 

面向对象编程基础

本章的目的是引导你通过面向对象编程这个术语,理解面向对象的重要性。许多高级语言,如c++和微软的Visual Basic,声称“支持对象”,但仅有少数语言支持所有构成面向对象编程的原则。C#就是这样一种语言:它是一种真正面向对象、基于组件的语言。因此,要从这本书获得尽可能多的知识,你需要很好的把握其中的概念。我知道这样的概念章节通常被读者略过,他们希望马上编码,但除非你认为自己是“技术天才”,我建议你阅读这一章。那些对面向对象编程仅略有所知的人,你会在这一章获得许多。同时,记住以后的章节都会用到本章讨论的术语和概念。

如我所言,许多语言都声称是面向对象或基于对象,但很少真正是这样。C++则不同,因为不可否认,它是深刻移植于C语言。太多的OOP想法必须牺牲C++来满足一些C的遗传属性。甚至连JAVA语言,尽管它很好,但作为面向对象的语言仍然有很多限制。举例来说,我提到在JAVA中简单类型和对象类型是不同处理和动作的。不过,本章的焦点不是比较不同语言对OOP原则的正确性。本章宁愿提供一个客观和与语言无关的解释OOP原则的教程。

在我们开始之前,我得说面向对象编程决不是一个市场推销短语(尽管对某些人来说是这样)、一个新语法、或一个新的应用编程界面(API)。面向对象编程是一系列崭新的概念和想法。它是一种用计算机语言思考问题的方式,是用一种更加直觉的方法来拥抱问题、因而也更加有生产力的一种方式。

我的第一个工作是用Pascal语言去编写一个《冰天假日》票房收入的记录和应用的程序。当我转移到其他工作和应用时,我用PL/I 和 RPG III (及 RPG/400)。

一些年以后,我开始用C语言编程。在这些实例中,我很容易应用我从以前的经验学到的知识。对我来说一个成功的语言的学习曲线是更短的,尽管语言的复杂性,因为直到我用C++编程时,其他所有我用过的语言仅仅是语法上的不同。

     然而,如果你刚接触面向对象编程,我先警告你:以前用非面向对象语言编程的经验在这没有用!面向对象编程是一种用来设计和编写问题的解决方案的完全不同的思维方式。事实上,研究表明编程新手比我们这些原来学过过程性语言如BASIC, COBOL和 C的人更快地学习面向对象的语言。

这些人不需要“忘却”任何过程性编程的习惯,而这些会阻碍他们对OOP的理解。他们以一个干净的石板开始。如果你用过程性语言编程很多年了,C#是你的第一个面向对象语言,我能给你最好的建议就是保持一个开放的头脑,在你摊开你的双手说:”我可以欺骗[插入你的过程性的语言]”之前,执行我所说的建议.任何一个有过程性编程背景的人转而学面向对象编程都会经历这个学习曲线,这个曲线很有用.用面向对象语言编程的收益是无法计算的,不管是更高效地编写代码,还是建立一个在第一次编写好后更易修改和扩展的系统.可能开始看上去并不是这样。然而,经历了20多年发展的软件(包括使用面向对象语言的8年)显示了:当正确应用是,OOP概念,确实如它所许诺那样起作用。不需多少功夫,我们就很容易发现到底哪里出来麻烦。                   

更多信息见中国软考联盟:www.cnitunion.com  中国软考联盟

【C#】C#之类

类 一、对象 把一个东西看成对象,我们就可以独立的去审查它的性质,它的行为,进而研究它和其他对象的关系。同样,在程序中使用对象的概念,就让我们可以把一个程序看成是很多对象相互作用的结果。对象有属性...
  • binggetong
  • binggetong
  • 2015年10月31日 10:39
  • 499

编写高效率的C#代码

周末空闲,选读了一下一本很不错的C#语言使用的书,特此记载下便于对项目代码进行重构和优化时查看。 Standing On Shoulders of Giants,附上思维导图,其中标记的颜色越深表示...
  • Robin022
  • Robin022
  • 2017年04月07日 07:34
  • 812

关于c#中的事件

c#事件学习
  • Joyhen
  • Joyhen
  • 2013年01月14日 11:32
  • 9206

C#安装和基础学习

C#安装学习C#视频链接:http://www.bilibili.com/video/av1422127/可以到官网查看安装包或百度下载 下载地址:https://www.visualstudio....
  • liuzp111
  • liuzp111
  • 2016年11月01日 23:21
  • 905

C#使用Tesseract OCR 解析验证码

之前我在C#简单数字验证码解析>>一文中介绍了用C#识别简单不变形数字验证码,但是对于识别变形的 或生成位置变化比较频繁的 验证码的准确率却不高。 下面介绍一个开源的OCR引擎Tesseract2...
  • xwx1122
  • xwx1122
  • 2014年12月25日 16:08
  • 2354

C#中的Attribute详解(下)

从上篇里我们可以看到,Attribute似乎总跟public、static这些关键字(Keyword)出现在一起。莫非使用了Attribute就相当于定义了新的修饰符(Modifier)吗?让我们一窥...
  • xiaouncle
  • xiaouncle
  • 2017年04月18日 16:04
  • 1678

C#操作符??和?:用法

先看如下代码:   string strParam =Request.Params["param"]; if ( strParam== null ) {    strParam= ""; }   st...
  • lybwwp
  • lybwwp
  • 2016年05月05日 17:47
  • 2490

java与C#的比较

一、C#和java哪个更好?        几天前,我的北理工研究生面试,老师问了我这样一个问题,你认为C#和java哪个更好?那么,作为读者的你,会怎么回答这道题呢?        其实,在我看来,...
  • lu930124
  • lu930124
  • 2016年01月16日 10:34
  • 18475

关于C# 中的封装

今天开始关于深入.NET平台与C#编程的学习,第一章中讲到关于封装的概念及应用,部分学员感觉比较的抽象,现在将C#中的封装相关的知识点整理了一下,希望能对你的学习带来帮助。 封装的概念 ...
  • 279503482
  • 279503482
  • 2014年03月07日 13:06
  • 3463

C# in关键字你造吗

上下文in关键字大致有三种 第一:在foreach中使用 用于遍历数组或集合foreach 语句对实现 System.Collections.IEnumerable 或 System.Co...
  • w200221626
  • w200221626
  • 2016年08月30日 17:21
  • 2631
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:incide c#(一)
举报原因:
原因补充:

(最多只允许输入30个字)