我有一个用C ++编写的大型应用程序,由于各种原因我要用C#重写它,我已经做了很多Delphi到C#,VB到C#但是C ++到C#我从来没有做过,虽然我有能力C ++我希望这个转换尽可能顺利。
主要是我要问的是,在这次转换中有哪些陷阱等待我,我应该注意哪些关键领域或者你可以提供给我的任何建议。
这篇文章相当不错,但还有什么我应该厌倦的吗?
答案 0 :(得分:6)
主要陷阱 - 不要认为这是升级。这些是不同的语言,在许多地方,您将需要完全不同的方法来解决问题。因此,您应该考虑使用最少的代码重用来重新实现。
这篇文章很不错。
答案 1 :(得分:3)
我建议你注意对象的生命周期。
在C ++中,当你完成它们时,你会明确地销毁它们。在C#(.NET)中,你没有。可能会发生一个对象持有某些重要资源(文件句柄,数据库连接等)。如果是一个问题,请使用using
指令。
答案 2 :(得分:2)
您需要翻译代码的精神,而不是代码本身。你需要在C ++中留下你必须要做的所有事情,因为那是在那里完成的。好的翻译是高度创造性的过程,所以要有创意。
答案 3 :(得分:1)
弦乐器的处理在开始时对我来说是一个陷阱。虽然我在Visual C ++中使用指针,但C#中的方法确实会返回值。
dummy = dummy.Replace("a", "b");
答案 4 :(得分:1)
如果你有C ++ dll而你想在C#项目中使用它们,你可以在pinvoke和DllImport
之前使用它们当您尝试将非托管代码转换或重写为托管代码时,会有很多差异。这是一个C++ to C# converter,非常适合将您的c ++代码转换为C#,但您不能期望使用它转换整个项目。