Oli*_*ops 11 .net c# managed-c++ c++-cli managed
如果您必须在C#和托管C++之间做出决定,您会选择哪个以及为什么?
托管C++相对于C#有什么好处?你更喜欢哪种语言?在什么情况下你会做出什么决定?
Ian*_*ose 22
如果我:我会使用托管C++:
并且已经掌握了一些C++技能,因为上述任务需要经验丰富的C++程序员.大多数时候,如果公司已经拥有C++代码库,那么我只考虑托管C++,否则谁将维护托管C++代码.
在其他情况下,我总是选择C#. 即使我为系统的一部分选择托管C++,我也会尽量在C#中编写尽可能多的系统.
将管理C++视为一个桥梁构建工具包,用于在非托管的C/C++世界和.NET的托管世界之间进行.
如果您只需要从C#中调用一些简单的API,那么请参阅pinvoke.net和本概述以了解如何从C#调用它们,因为C#中的几行复杂的pinvoke代码(预构建的桥)通常比引入C++更好到尚未使用它的项目.
托管C++相对于C#有什么好处?
C++ .net对于与C++和C代码交互很有用(即,调用外部C或C++库,为用C或C++编写的外部模块提供回调函数等.
你更喜欢哪种语言?
除了上面描述的情况(与C和C++交互)之外,我更喜欢C#.
C#更易于编写,更简单,并且专门用于使用.NET平台.C++也可以做到这一点,但它具有C++语言的所有复杂性以及使用.NET平台所需的扩展.
除非您需要与本机C++或C代码进行交互,否则在大多数情况下(例如,如果您正在编写.NET平台),最好使用C#.
通常我更喜欢C++,但是当需要为.NET编写代码时,它不会超过C#.