C++/CLI 和 C#/VB 与不安全和外部有什么区别?



.NET 将 C# 和 VB* 作为(相对(高级语言,两者都编译为 .NET CLI 中间代码 (.NET相当于Java的"字节码"(,而不是本机机器代码。还有 C++/CLI,它允许您为 .NET CLI 中间代码编写代码。

这些可以像 C#/VB 项目一样相互熟悉,C++/CLI 代码能够使用 C# 定义的元素(类、方法、属性(和gcnew和符号^等关键字,以及 C#/VB 代码。C++/CLI 允许使用指针、内存分配以及获取和设置内存中的实际字节(通过指针(。但是,这些是可以使用 C#(和 VB?(使用unsafe关键字完成的操作。

这两种方式有区别吗?有没有你可以用一个实现但不能实现另一个的事情?是否存在性能差异(考虑编译为中间 .NET CLI 代码而不是机器代码(?

* 当我说 C#/VB 时,我只知道 C# 部分,所以我可能错了。我不熟悉VB。

提前感谢!

C++/CLI 的主要原因是有一种简单的方法来连接到本机 c++ 库,这是最重要的区别。

在 c++/cli 中,可以使用本机 VS C++编译器编译本机代码。这可以提供加速,因为可以使用较低级别的技术,包括 SIMD,并且编译器通常更擅长优化。源。

如果两者都编译为 MSIL,则在这两种情况下,性能将主要取决于 JIT 编译器。但可能有一些我不知道的微小差异。

最新更新