您的位置:首页 > 编程语言 > C语言/C++

C#相对于C++、Java全新在哪里

2008-02-17 15:38 239 查看
做为脱胎于C++的一直语言,C#和Java一样对C++进行了改进,其中最激动人心之处莫过于垃圾自动回收了。做为一个编程的常识,用户都知道当某一个变量不再引用时,应该清理它占用的内存。在C++中对于一个局部变量或者系统分配的变量,系统会自动收回它占用的内存,例如,基于堆分配的变量。但是系统不会自行释放用户自己分配的内存,由于用户忘记释放内存造成的内存泄露,在一定程序上会给程序的稳定性造成隐患。C#能够自动回收用户分配内存,用户可以大胆分配内存,而不用关心它的释放,而且C#实现了类型安全,确保应用程序的稳定性。当然类型安全也使代码的可读性大大增强,更有利于团队的开发。

C#比C++有更丰富的错误处理模型,在程序编写的过程中可能会遇到大量的未检查的HRESULTs,也就是说程序中有大量的函数运行后返回一个结果值,但是程序并没有对运行的结果惊醒有效的检查处理,这样任何一个调用的失败,都会造成一连串的连锁反应,程序会弹出一个丑陋的错误对话框,以示错误。为了改进这一状况,C#提供了对包括throw、try。。。Catch、try。。。finally关键词的内在支持。在C++中,也有类似的关键词,不过它们都是通过宏来实现的。

C#提供了更见现代的调试方法,在以往的C++程序中,用户往往经常需要使用#ifdef和#endif关键字。这样一部分代码只能运行在调试阶段。用户最终可以生成调试版本和发行版本。发行版本的一些函数调用将执行一些空操作。C#提供的条件关键字可以根据定义的标记决定程序的流向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: