gpt4 book ai didi

c# - C++到C#的迁移,与指针相关

转载 作者:太空狗 更新时间:2023-10-29 21:45:49 26 4
gpt4 key购买 nike

我是 C++ 程序员,我正在做一个迁移项目,我需要将 C++ 代码转换为 C#,但我对 C# 知之甚少。

我正在迁移的 C++ 代码有很多指针操作,例如

Hdr->States = (DspState*)baseAddress; // Converting the buffer to other type.

我的问题是,

  1. 如果我在 C# 中进行不安全的编程,只要我正确地跟踪内存,会有什么危害。
  2. 或者在 C# 中是否有任何其他方式来处理这些类型的指针操作(有时是双指针)。

最佳答案

如果您要将项目从 C++ 移植到 C#,您的首要目标应该是完全保持在托管代码的安全世界中。仅仅因为您在 C++ 代码中使用了指针并不意味着您必须在 C# 中执行相同的操作。 C# 中的不安全代码实际上应该是您最后的选择,并且只有在非常特殊的情况下才有必要。

您的示例中的代码在 C# 中可能像这样,并且不需要任何指针或任何不安全的操作。

BaseAddress baseAddress = ...
Hdr->States = (DspState)baseAddress;

或作为类型检查的转换操作

Hdr->States = baseAddress as DspState;

C#/.NET 一直使用引用,它们在某种程度上类似于指针,但没有指针算法的危险。

关于c# - C++到C#的迁移,与指针相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com