1、区别一、C++与C#编程语言来说,只是在于设计目的上还是有所区别的。在C++设计之时考浞骒镤迫虑到提供先进的面向对象特性,同时也为了提供很好的性能。为了以往的程序得到保证、工程师在开发时的知识兼容,目前C#与C语言几乎完全兼容。
2、区别二、就C#而言,它通过底层的虚拟机机制减少了C/C++语言中常常容易发生的内存泄漏恽但炎杰和安全性问题,它代价是运行速度相对减慢。由于简化了编程语言的复杂性同样的C++,对于C#来说比C++恝依在绌来得更为简单一些,目的上大大提高了开发者得效率。
3、区别三、编译目标:C#则编译成中间语言它与Java在字节代码上有些相似。而C++经常把代码编译成汇编语言。之后IL在通过Iust-In-Time编译进程转换成本机的可执行代码。
4、区别四、内存管理:C#将开发人员从记账式的内存管理任务中解放出来,不再需要显式地删除动态分配的给堆的内存,而C++则要这么做,无用存储单元收集器将周期性地清空不再使用的内存。
5、区别五、指针:C#中指针的运用可能与C++一样,但它只用于已特别标记为应用指针的代码块中。对于大部分的程序,C#依赖VB/Java风格的对类实例的引用,而不需和C++一样频繁地使用指针。
6、区别六、运算符的重载:在C++比C#中用来显式重载的运算符比要多,主要是C#编译器是运用一些定制的基本操作符重载(如=)来自动计算出组合操作符的重载(如+=)。
7、区别六、库: C++依赖于标准库,C#依赖于.NET基类。而.NET基类是以单一的继承为基础,而标准库是以继承和模板为基础。
8、区别七、目标环境:C#是基于GUI的环境下(不仅仅是Windows环境,尽管现在只是在掳姗浚瑙Windows中可用)专门为编程和背景服务(如Web服务)而设计的。这与语言本身无关,而是反映在基类库的设计中。
9、区别八、预处理指令:C#包含一些预处理指令,它的语法和C++一样。但C#的预处理指令少得多,因为C#的其它语言特性使得这些指令不再重要。
10、区别九、枚举:C#的枚举比C++中枚举的功能更为广泛。它们在权限范围内的语法结构很成熟,可支持不同的属性与方法。枚举仍是作为基本的数字类型来执行的,所以不会存在性能上的损失。
11、区别十、析构函数—当析构函数被调用后,C#不能保证它的执行除非要除空的是具体的外部源代码,如文件与数据库连接,C#不可以在析构函数中放置代码,而C++则可以。
12、区别十一、类与结构:C#正式区分了类(一般用于包含许多方法的大型对象)和结构(一般用于只包含变量集合的小型对象)类和结构的存储方式不同,结构不支持继承。它们还存在一些其它的区别。
13、区别十二、委托:C#不支持函数指针。但委托可以实现对应的功能,它把引用以一种特殊的形式封装到方法中。委托可以在方法之间传递,用于调用包含引用的方法。这与C++指针的工作方式相同。
14、区别十三、事件:事件与委托相似,但它支持回调模式。就是当执行一些操作时,客户通知机器,将这些操作通知给它。工作方式与VB相同。 特性:这一概念在VB和COM中应用的很广,C#中也导入了这一概念。
15、区别十四、接口:可以将接口看为是一个抽象的类,其目的是用来定义类同意执行的方法和属性。觊皱筠桡C#接口与COM接口不同—C#接口是简单的方法列表,而COM接口有其它的相关的特性,如GUIDS,但他们的原理基本相同。
16、区别十五、属性:C#可以用特性元信息(如属性)来修饰类、方法和参数等。可以在运行时内访问属性,已决定代码的执行。
17、区别十六、确定线程:C#的lock语句可支持线程同步(C++不支持线程,必须在代码中通过调用API或其它的类库来实现)
18、区别十七、反射:C#中,代码可自动获得已编译的装配件(库和可执行文件)中的类定义的信息。可以编写显示类和方法信息的程序