我正在将一些代码从 C# 移植到 Java。我发现很容易错过代码或犯其他错误。我在想,如果我可以让两个版本的代码存在于同一个文件中,那么我可以减少这些错误。我只会编辑一个文件,只编辑文件的两个部分。
如果 Java 有一个像 C# 这样的预处理器(我知道有一些项目允许这样做),我可以写这样的东西:
#if C_SHARP
namespace MyMath
{
class NaiveFib
{
public int Run(int n)
{
if (n == 0) return 1;
if (n == 1) return 1;
return Run(n - 1) + Run(n - 2);
}
}
}
#elif JAVA
package MyMath;
public class NaiveFib
{
public int Run(int n)
{
if (n == 0) return 1;
if (n == 1) return 1;
return Run(n - 1) + Run(n - 2);
}
}
#endif
考虑到 Java 文件被命名为 *.java 而 C# 文件被命名为 *.cs,我的 IDE 识别文件包含可编译代码时仍然会遇到问题。如果我检查正确的设置,看起来我可以让 Visual Studio 认为 *.java 文件是 C# 文件。我不必对我的 Java IDE (Eclipse) 进行任何更改。
这一切都可能吗?这是一个好主意还是它比它的价值更麻烦?