C++托管扩展 C托管扩展Managed Extensions for C是对C的一个属性和关键字的扩展以便于在微软公司的NET Framework进行编程它也经常被称为托管C年由微软发布 注意C托管扩展自Visual C 起被一个新的语言规范正在标准化的CCLI所取代 托管C并非独立存在的编程语言而仅仅是微软对C的一个语法扩展允许C程序员在NET框架和CLR的基础上进行托管编程与C和Visual Basic NET相比其主要优点是旧代码可以比较快地移植到新的平台上而且即使不完全重写代码也可以通过互操作在同一个模块中无缝整合托管和非托管代码从新的Net框架中获益 Net框架封装了大量的API例如网络访问字符串操作数据访问XML服务图形界面控件库邮件服务加密服务文件输入输出甚至是WMI管理也使得应用程序员可以编写更加简洁的代码目前只有托管C及其后继者CCLI可以做到无缝整合托管和非托管代码而在托管代码中调用COM的速度又相当慢所以经常被用于其他语言和非托管代码之间的桥梁 托管C允许程序员编写托管代码内存管理的工作现在可以让CLR去自动处理访问时也增加了类型检查减少了缓冲区溢出和内存泄漏的危险增加了程序的稳定性但是在性能敏感的应用中庞大的NET框架和缓慢的自动内存管理并不是必要的传统非托管代码仍然是一些人的首选 在面向对象编程方面主要的变化是对多重继承的限制这是因为CLR的限制和内存管理的需要一个托管类不能多继承基类同时类属性和微软中间语言MSIL的引入也使得托管类可以在其他语言中使用和继承 与此同时托管C引入了大量的关键字和语义转换减少了代码的可读性和明确性缺少在很多语言中都支持的泛型和for each语句也增加了其他语言的程序员转向托管C的困难在其后继者CCLI中泛型和for each语句才被支持