`
444878909
  • 浏览: 636087 次
文章分类
社区版块
存档分类
最新评论

C# 基础知识 (一).概念与思想篇

 
阅读更多

在C#中有一些我自己认为比较独特的知识点,这些知识点是我经常使用的知识,但对它们的了解还是比较少的,所以通过查找资料学习,总结了这些独特的知识点并简单叙述,第一篇主要是一些概念和思想方面的知识。(后面还有C#其他篇的文章)

一.C#概念

C#语言是从CC++语言演变而来的,是微软创建的一门面向对象、运行在.NET Framework上的高级程序语言,是Windows的一个必要组件,包括一个称为公共语言运行时(common language runtimeCLR)的虚拟执行系统和一组统一的类库。(C#源文件扩展名为.cs

C#与Java有很多相似的地方:继承、接口、声明命名空间(using&import)、从Main入口点开始执行、源代码被编译成中间状态等。同时也有明显不同之处:C#借鉴了Delphi的与COM是直接集成的特点、它们所执行的平台也不相同,Java运行环境JRE(Java Runtime Environment),C#运行环境CLR(Common Language Runtime),且CLR支持多种语言;同时C#提供封箱装箱等方法。

二.面向对象思想

面向对象是将客观事物看做属性和行为的对象,通过抽象同一类对象的共同属性和行为,形成类。通过对类的继承和多态实现代码重用等。对象(Object)是类(Class)的一个实例(Instance),如果将对象比作房子,那么类就是房子的设计图(类中定义包括属性和方法)。

面向对象的三个基本特征为:

(1).封装:把客观事物封装成抽象的类,类中数据和方法只让可信类或对象操作,不可信的隐藏(内部细节)

(2).继承:它可使用类的所有功能,无需重新编写原有类且对功能进行扩展

(3).多态:一般类中定义的属性或行为,被特殊类继承后,可以具有不同的数据类型或表现不同的行为,各个类能表现不同的语义,实现的两种方法为覆盖和重载

通过下面的例子来讲解面向对象:

1:让你编写一个计算长方体体积的程序,通常的思想是定义3个变量长=a,宽=b,高=c,体积v=a*b*c;而在面向对象思想中先创建一个长方体的类,在类中定义长宽高和体积,然后定义方法,在实例化使用。(C++代码)

class Rect {
public:
	void showArea(…);         //定义方法:计算长方体体积
private:
	float a,b,c,v;            //定义属性:长 宽 高 体积(私有成员)
}
void Rect::showArea(…) {…}

这样的好处是它是站在事物本身的角度去思考解决问题,如果上面采用面向过程定义函数的形式实现,当出现多个形状时,你需要对每一种形状都定义一种方法,而面向对象只需把这些形状的属性和方法抽象出来,更加方面的实现。

值得注意的是,面向对象提供的是一种思想,而非仅仅是课本中的那点知识,很多时候我们仅仅是把使用了C++C#Java一门面向对象的语言,或者是定义了几个类、使用继承等知识就认为自己运用了面向对象(我就是这样的);但我更认为面向对象是一种思想,一种更好的解决实际问题的方法。比如有这样一个问题:

2:为了方便儿童学习编程,X公司开发了一套Racing Car 模拟器,使用这个模拟器每个孩子都可以用一种简单的语言来控制一辆赛车,例如,right,left等。请设计一种简单的语言,给出它的语法,以及该语言的类图。

这就是我们实际编程中联系到生活的问题,它涉及到了设计模式的相关知识,其中我采用的方法是“命名模式”实现的:客户端是定义ChildrenCar,请求者是Children发出的Right\Left\Up\Down命令,接受实现者是Car执行Move(),抽象命令是上下左右的抽象接口,具体命令是Car的上下左右。我制作的类图如下:

通过这个例子我不是想证明我采用命令模式和画的类图是否正确,我想阐述的想法是我们学习面向对象知识主要是用来解决实际生活中的问题,让它更加高效的解决问题和优化代码。在学习《设计模式》时老师就曾说过“模式是现成的,但实现方法要靠自己;同时,学习的时候要敢于否认自己以前很熟悉的套路,甚至经典套路,只要能更加高效正确的完成项目,你的模式就很可能就是经典。”所以,我才认为面向对象是一种思想,不是宏观的C语言就是面向过程,C++C#就是面向对象。

同时,面向对象思想要适应需求的变化,解决用户的实际需求,在设计时就要尽量考虑到变化,会涉及到抽象、封装变化(重点)、设计模式等知识。补充:C#中的对象都是System.Object的子类,即所有对象都继承System.Object,这样的好处是所有的对象都可以有公用的方法,如ToString()方法。

三.总结

上面的内容主要是我对C#基础知识的一些自己理解,很可能我理解思想是错误的,但我更希望提供一种自己的思想与大家分享。同时,由于知识有限,做的项目也少,可能理解有错误的地方或还没有理解更深层的地方,见谅!最后希望几十年后的自己也能像很多大神一样回过头来对年少时的自己写的这些博文做些更深入的分析,在根据那时的经历写出更优秀的阅历与大家分享更深刻的经验!鼓励自己与大家加油。

(By:Eastmount 2013-8-20 夜1点)

参看一些书籍孙景瑞的《从零开始学C#》、罗刚的《使用C#开发搜索引擎》、《设计模式》课件、同时参考了CSDN论坛中一篇关于面向对象的讨论,个人认为非常不错。http://bbs.csdn.net/topics/220013605

分享到:
评论

相关推荐

    c#学习笔记.txt

    /* 你能看得出来,这不是一篇正规的技术文章,所以若你不小心从里边读到了一个爱情故事,可不要奇怪。有很多人用程序来表述爱情,在其中我能看到有Money,有Girl,有一些还涉及到Sex,但是我没有找到Love,我始终相信...

    C#微软培训资料

    第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 ...

    《C#和.NET 3.0第一步--适用Visual Studio 2005与Visual Studio 2008》随书配套光盘

    第一篇介绍.NET Framework 3.0开发框架和C#语言的基础知识,透彻地讲解了面向对象开发思想在C#中的贯彻、基本的WinForm窗体编程模型、文件读写技术和注册表操作,使读者在学习完本篇之后能够使用WinForm进行小型的...

    面向对象C#语言 课件

    基础知识C#,主要介绍它的概念及面向对象的思想,对于初学者可以看看。

    WPF编程宝典:使用C#2012和NET 4.5

     ·理解WPF编程的基础知识:从XAML到控件,乃至数据流;  ·开发实用的应用程序,带您实际了解导航、本地化和开发;  ·探讨WPF提供的高级用户界面控件;  ·分析如何在WPF中管理文档,涵盖了文本布局、打印和...

    Visual C#程序设计

    并通过大量的程序实例和相关练习逐步掌握高级程序设计语言的基本知识和基本技术,在理论和实践上使学生掌握面向对象的思想方法并初步具备软件开发的能力。全书共17章,内容包括流程控制语句、类与对象 、继承与多态...

    中美 IT 培训 C# Asp.net 笔记3

    针对循环、数组、类的概念、类的构建、类的使用、对象的创建、面向对象的思想、集合、排序、IO操作等知识点先后安排2或3个小型项目:1。制作一个通讯录;2。制作一个小游戏;3。教学管理系统。 通过实际项目深入理解...

    ASP.NET常见问题集锦.zip

    ASP.NET常见问题集锦.zip . .. .net中中文乱码问题解决.txt ADO.NET 与 XML:双剑合壁,威力强大.doc ... ASP.NET ViewState 初探.doc ASP.NET Web 方法中的 ... 面向对象设计(OOD)思想(C#) - c-c++ - CSDN

    WPF編程寶典--使用C#2012和.NET4.5-part1

    理解WPF编程的基础知识:从XAML到控件,乃至数据流 开发实用的应用程序,带您实际了解导航、本地化和开发 探讨WPF提供的高级用户界面控件 分析如何在WPF中管理文档,涵盖了文本布局、打印和文档打包等所有技术 使用...

    WPF編程寶典--使用C#2012和.NET4.5-part2

    理解WPF编程的基础知识:从XAML到控件,乃至数据流 开发实用的应用程序,带您实际了解导航、本地化和开发 探讨WPF提供的高级用户界面控件 分析如何在WPF中管理文档,涵盖了文本布局、打印和文档打包等所有技术 使用...

    C# 课程设计案例精编

    基础知识 1 1.1 Visual Studio.NET 1 1.1.1 什么是.NET 1 1.1.2 .NET结构 1 1.2 基本C# 2 1.2.1 什么是C# 2 1.2.2 C#?代码结构 2 1.2.3 C#注释 3 1.2.4 标识符与关键字 4 1.3 C# 基本类型 5 1.3.1 值类型 6 1.3.2 ...

    面向对象编程基础知识

    面向对象编程基础知识,基本概念、面向对象思想

    【 C#资源 】 C#设计模式(含随书源码)

    1、内容丰富:涵盖了C#开发中常用的设计模式,从基础概念到实际应用,一应俱全。 2、案例驱动:每个设计模式都配备了真实的案例和代码示例,帮助读者快速理解并应用所学知识。 3、源码丰富:随书附赠了完整的源码,...

    中美 IT 培训 C# Asp.net 笔记2

    针对循环、数组、类的概念、类的构建、类的使用、对象的创建、面向对象的思想、集合、排序、IO操作等知识点先后安排2或3个小型项目:1。制作一个通讯录;2。制作一个小游戏;3。教学管理系统。 通过实际项目深入理解...

    中美 IT 培训 C# Asp.net 全套笔记1

    针对循环、数组、类的概念、类的构建、类的使用、对象的创建、面向对象的思想、集合、排序、IO操作等知识点先后安排2或3个小型项目:1。制作一个通讯录;2。制作一个小游戏;3。教学管理系统。 通过实际项目深入理解...

    ASP.NET WEB应用程序设计教程(单维锋编著) 图书例子代码-校园音乐吧项目(c#)

    全书共14章,内容包括Web应用程序概念、HTML、DHTML、 C#语言基础、ADO.NET、服务器端标准控件、数据验证控件、导航控件、内部对象、数据绑定控件、母版页、主题与皮肤、AJAX技术、应用程序配置以及软件测试和部署...

    asp.net知识库

    事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle...

    C++程序设计基础实例教程

    第一章 C++基础知识 1.1 程序设计基本概念 1. 程序=算法+数据结构 2. 算法:解决问题所列出来的步骤 3. 程序设计语言:面向机器的语言;`面向过程的语言;面向对象的语言 4. 先进的模块化的程序设计思想 1.2 C++语言...

    值类型与引用类型理论内容.part01.rar

    通过实际项目深入理解和掌握C# 基本语法、面向对象的思想、类的概念和使用、对象的创建、排序、IO操作等 数据库知识和 SQL Server 2000 (40课时) 讲授数据库的基本知识和SQL Server 2000, 讲授数据库的设计和...

    值类型与引用类型理论内容.part05.rar

    通过实际项目深入理解和掌握C# 基本语法、面向对象的思想、类的概念和使用、对象的创建、排序、IO操作等 数据库知识和 SQL Server 2000 (40课时) 讲授数据库的基本知识和SQL Server 2000, 讲授数据库的设计和...

Global site tag (gtag.js) - Google Analytics