我正在进行一个项目,将C++代码手动转换为C#。我对C#有一定的了解,但之前从未使用过C++。
我需要知道如何处理头文件,因为C#没有类似的东西。举个例子,如果有buffer.h和buffer.cpp文件,我是不是只需将它们转换并将它们包含在同一个buffer.cs文件中?
C++头文件和Ada规范文件是否有任何关联?
你可以将C++头文件看作包含两种主要类型的内容:类定义,它定义了其成员数据和“接口”(不要与C#接口类型混淆)以及“其他内容”。类定义部分包含方法原型和类成员变量。
关于原型的好消息是,在C#中你根本不需要它们。你的类的客户端通过命名空间的程序集从实现本身获得原型信息。数据成员包含在你的C#类实现中,通常作为私有成员通过C#属性公开。
上面提到的“其他内容”可能包括#define,你通常希望将其转换为C#中的const定义。其他诸如枚举之类的东西在C#中都有相应的等价物,当然你需要将它们移动到你的类的.cs文件中。
#define
宏可以远远超出常量变量的声明。 - luke
#include
语句所在的位置。因此,在实际效果上,即使在C++中,一旦进行了包含,翻译单元也只有一个源文件。 - David Heffernan