我正在将一些代码从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)进行任何更改。
这一切可能吗?这是一个好主意还是麻烦多于其价值?
最佳答案
我会说这个主意不错,但是代码很难阅读。一团糟。
也许如果您有一个非常简单的代码库...但是实际上会导致大混乱!
您可能会花费大量时间查看错误代码,向下滚动n并变得更加困惑。当您打开Java项目时,就会知道文件中的干净代码,您知道自己正在使用Java。当您打开C#时,您知道它是C#等。
做一个Java分支和您的代码的C#分支。它更易于维护和保持清洁。
想想您要升级环境的情况,为什么要浪费时间/金钱在仅升级C#代码的同时重新编译Java代码,等等!
您还会在相同文件中移植到php,ruby,perl,python等吗?
只是让程序员打开他们想要查看和使用的代码,即单独的文件!
一些Java程序员在看到C#代码时可能会跳出窗口!想过吗? ;)