C#的介绍

C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。

C#以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。

C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言,希望借助这种语

言来取代Java。

设计目标

ECMA标准列出的C#设计目标:

1.C#旨在设计成为一种“简单、现代、通用”,以及面向对象的程序设计语言

2.此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检

查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种存储器

自动释放技术)。

软件必须做到强大、持久,并具有较强的编程生产力。

3.此种语言为在分布式环境中的开发提供适用的组件开发应用。

4.为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已

熟悉C和C++的程序员而言。

5.对国际化的支持非常重要。

6.C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定

应用的小型系统均适用。

7.虽然C#程序在存储和操作能力需求方面具备经济性,但此种语言在某些情况下并

不能在性能和程序大小方面与C语言相抗衡。

语言特性

1. 相对于C和C++,这个语言在许多方面进行了限制和增强:

2. 指针(Pointer)只能用于不安全模式之中。大多数对象访问通过安全的引用实

现,以避免无效的调用,并且有许多算法用于验证溢出,指针只能用于调用值类

型,以及受垃圾收集控制的托管对象。

3. 对象不能被显式释放,代替为当不存在被引用时通过垃圾回收器回收。

4. 只允许单一继承(single inheritance),但是一个类可以实现多个接口

(interfaces)。

5. C#比C++更加类型安全。默认的安全转换是隐含转换,例如由短整型转换为长整

型和从派生类转换为基类。而接口布尔型同整型,及6. 枚举型同整型不允许隐含转换,非空指针(通过引用相似对象)同用户定义类型

的隐含转换字段被显式的确定,不同于C++的复制构造函数。

7. 数组声明语法不同("int[] a = new int[5]"而不是"int a[5]")。

枚举位于其所在的名字空间中。

8. C#中没有模版(Template),但是在C# 2.0中引入了泛型(Generic

programming),并且支持一些C++模版不支持的特性。比如泛型参数中的类型

约束。另一方面,表达式不能像C++模版中被用于类型参数。

属性支持,使用类似访问成员的方式调用。

9. 完整的反射支持。 

特点

1. 简单、安全

在 C++ 和 C 语言中程序员最头疼的问题就是指针问题,在 C# 语言中已经不再

使用指针,而且不允许直接读取内存等不安全的操作。

它比 C、C++、Java 提供了更多的数据类型,并且每个数据类型都是固定大小

的。

此外还提供了命名空间来管理 C# 文件,命名空间 相当于一个文件夹,在创建程

序时,允许在一个命名空间中创建一个或多个类,方便调用和重用。

2. 面向对象

与其他面向对象语言一样,C# 语言也具有面向对象语言的基本特征,即封装、

继承、 多态。

封装:就是将代码看作一个整体,例如使用类、方法、接口等。在使用定义好的

类、 方法、接口等对象时不必考虑其细节,只需要知道其对象名以及所需要的

参数即可,也是一种提升代码安全性的方法。

继承:是一种体现代码重用性的特性,减少代码的冗余,但在 C# 语言中仅支持

单继承。

多态:不仅体现了代码的重用性,也体现了代码的灵活性,它主要通过继承和实

现接口的方式,让类或接口中的成员表现出不同的作用。

3. 支持跨平台

最早的 C# 语言仅能在 Windows 平台上开发并使用,目前最新的 C# 6.0 版本已

经能在多个操作系统上使用,例如在 Mac、Linux 等。此外,还能将其应用到手

机、PDA 等设备上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值