如何从Java到C共享常量?

如何从Java到C共享常量?,java,c#,Java,C#,我正在编写一个客户机-服务器应用程序,包括一个通信系统。该协议包括用于定义消息类型的令牌。在服务器(Java)上,我使用带有相应字符串值(实际消息类型)的消息类型枚举。当然,这些类型必须在客户端(C#)上匹配 是否有方法导出此文件以便始终同步 我只是不想重新发明轮子。我曾考虑编写代码从Java创建一个cs文件,但我想确保自己不会过于复杂。碰巧的是,我使用了相同的基本语法;您只需将.java复制到.cs即可,反之亦然。您可以在运行时使用两种语言中的枚举名称来表示协议字符串值。遗憾的是,Kenney

我正在编写一个客户机-服务器应用程序,包括一个通信系统。该协议包括用于定义消息类型的令牌。在服务器(Java)上,我使用带有相应字符串值(实际消息类型)的消息类型枚举。当然,这些类型必须在客户端(C#)上匹配

是否有方法导出此文件以便始终同步


我只是不想重新发明轮子。我曾考虑编写代码从Java创建一个cs文件,但我想确保自己不会过于复杂。

碰巧的是,我使用了相同的基本语法;您只需将
.java
复制到
.cs
即可,反之亦然。您可以在运行时使用两种语言中的枚举名称来表示协议字符串值。遗憾的是,Kenney的建议仅适用于在Java中使用微不足道的枚举行为的情况。我发现自己在C#中的Java中缺少的唯一功能是提供枚举实例方法的能力。太强大了。不过,长短不一的是,我不会努力同步它,而是承认C#和Java版本是独立的相关代码库,而且忠实性将是需要纪律的东西。如上所述,问题相当广泛。如上所述,如果在两种语言中使用简单的枚举类型,则可以复制/粘贴。或者,您可以使用代码生成步骤(例如T4)从公共输入文件自动为每种语言生成适当的源代码。另一种选择是放弃实际的
enum
类型,而是编写一个在运行时基于输入文件定义命名值的类。Kenney,请将您的注释作为答案,以便我可以标记它。这就是我使用的方法。对于其他情况,我相信它们是其他情况的相关答案。所以请给他们正确的答案来给你打分。在我的例子中,它是一个普通的枚举,我能够使它工作。