学习C#只需一个系列(一)——C#导论

系列文章目录

学习C#只需一个系列—— 快速入门C#

学习C#只需一个系列(一)—— C#导论

学习C#只需一个系列(二)—— 类和结构



前言

本章介绍C#语言的特点,结合语言特点介绍它的应用场景和适合的领域。可以作为是否要学这门语言的参考。如果有任何不对的地方,请在评论区留言或者私聊,感谢你们的指正。


一、C#面向对象编程

说道C#,你是否经常听到或看到人们说它是面向对象的语言,现在让我们来思考一个问题,什么是面向对象?以及还有那些语言也具有同样的性质。要了解面向对象,就不得不介绍一下它的“兄弟”——面向过程。

1.面向过程

“面向过程”(Procedure Oriented,简称PO)是一种以过程为中心的编程思想。

比如以公共汽车而言。
“面向过程”就是汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。我们分别对启动和到站编写程序。类似的还有修理等等。

简单来说就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。

2.面向对象

面向对象(Object Oriented)是软件开发方法,一种编程范式。1

可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:

棋盘没满
棋盘填满
开始游戏
黑棋行动
绘制棋盘
判断输赢
轮到白子
绘制棋盘
判断输赢
输出结果

把上面每个步骤用不同的方法来实现。


如果是面向对象的设计思想来解决问题。面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

ChessBoard Paint() Player int id Play() Rule WinOrLose() Foul() 输入 判断输赢、是否犯规

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

二、应用领域

1.网络服务

C#几乎集中了所有关于软件开发和软件工程研究的最新成果:面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……。尽管像很多人注意到的一样,罗列上述特性时,总是让人想到JAVA,然而C# 确实走得更远。

JAVA的用户主要是网络服务的开发者和嵌入式设备软件的开发者,嵌入式设备软件不是C# 的用武之地,而在网络服务方面,C# 的即时编译和本地代码Cache方案比JAVA虚拟机具有绝对的性能优势。

2.桌面应用

优点

  1. c#语法简洁,流畅,严谨, 比其他的语言更易学习和记忆
  2. 完善的垃圾回收机制
  3. 完善的智能提示功能
  4. 完全面向对象
  5. 具有更高安全性,稳定性
  6. 与web结合紧密

缺点

  1. c#在windows上像神一样,离开了windows神马也不是,java可以在不同的操作系统上运行,不论win,unix……跨平台性是java的一大特点,但相应的java的执行效率也受到影响,各有取舍。
  2. 微软的东西与他们自己的产品有很好的的兼容性,与别人的东西,基本不兼容,这也算是微软的一大特色……,c#似乎也有这毛病。
  3. B\S逐渐替代C\S结构成为软件开发的主流,对于企业级的web开发,服务器不可能是windows所以服务器端的开发也不会用到c#

初学的人,c#似乎更容易上手,在有一定的c#基础情况下学习java,会感觉更轻松点。


总结

  1. C#是面向对象编程,面向对象语言的特点:1、对象唯一性 2、抽象性 3、继承 4、多态
  2. c#语法简洁,流畅,严谨, 比其他的语言更易学习和记忆 ,如果想学JAVA也可以先来C#,这样之后学习JAVA会更轻松。
  3. C#更适合桌面(WinForm、WPF)、网络(ASP.NET)的开发

  1. 编程范型提供了(同时决定了)程序员对程序执行的看法。例如,在面向对象编程中,程序员认为程序是一系列相互作用的对象,而在函数式编程中一个程序会被看作是一个无状态的函数计算的序列。 ↩︎

猜你喜欢

转载自blog.csdn.net/qq_45164916/article/details/112771866