在过去的几年里,我一直是一名本地C++程序员.现在我们从头开始一个新项目.那么您对以C++\CLI转移而牺牲平台无关代码的想法是什么?转换到C++\CLI可以获得任何特殊优势吗?
根据我对C++,C#和.NET的经验,我建议如下:
如果你想使用.NET方式,请使用C#.
如果您不想使用.NET,请使用传统的C++.
如果必须将传统C++与.NET代码桥接,请使用C++/CLI.适用于.NET调用C++类和C++调用.NET类.
如果你不需要它,我认为没有意义去C++/CLI.
切换前需要考虑的一些问题:
[1]你坚持使用Windows吗?有其他操作系统的.NET克隆,但你的应用程序不会只是透明地运行.您可能不需要的复杂性.
[2]您是否考虑仅仅为垃圾收集支持进行切换?如果是这样,您可以使用一些C++垃圾收集器库.如果你弄清楚如何利用std :: shared_ptr,你可能不会觉得需要垃圾收集器.您可能不需要的开销.
[3]您是否正在考虑C++/CLI,因为垃圾收集和您可以利用的所有有用的.NET类?如果是这样,为什么不切换到c#.C++/CLI是一种过渡技术,最好不要在这些事情上投入资源.c#变得非常成熟和可用.
就个人而言,我只会坚持使用C++;).