在.NET语言之间共享类方法



我和我的两个朋友正在一起制作一个编程项目,但仍然单独地,我想补充一点,我们都是编程的新手。现在,我们都将编写相同的应用程序,但使用不同的语言,因为我们都用不同的语言自学。我将在C#中编写该应用程序,朋友1将在C /CLI中编写它,而Friend 3将在Java(或J#)中编写。

现在,我们要制定的应用程序将是"纸牌游戏引擎"。它将是一个应用程序,能够加载和玩不同类型的标准西部52卡甲板游戏,例如扑克或二十一点等。我们将单独编写的实际应用程序,但是我们想加载实际的"卡片游戏"作为外部模块,我想我们会为此单独制作组装吗?现在,我们的要求之一是这些"卡游戏"模块应该能够跨语言,我的意思是我应该能够使用我的"二十一点C#module",然后将其加载到他的" C )中版本"游戏引擎的版本,反之亦然。

所以我有两个问题

  1. 这甚至可以做吗?据我了解,所有.NET语言都可以在同一解决方案下进行编译?如果我们将"模块"写为程序集,那么他们应该能够访问某些方法,反之亦然,或者我在这里错了?
  2. 由于朋友2实际上不是用.NET语言编程的,因此是否有一种简单的方法来制作可以使用此功能的Java解决方案?他可以将"卡游戏"模块写为DLL,然后我们可以将其导入到我们的单独项目中?还是他在J#中编写应用程序会更容易?

我想补充一点,我们都是编程的新手。现在,我们都将编写相同的应用程序,但使用不同的语言,因为我们都用不同的语言自学。

此陈述的答案很容易:不要。甚至不要考虑这样做。选择一种语言并坚持下去。

所以我有两个问题1)这甚至可以做吗?据我了解,所有.NET语言都可以在同一解决方案下进行编译?如果我们将"模块"写为程序集,那么他们应该能够访问某些方法,反之亦然,或者我在这里错了?

您可以使用中间语言交流工具,但这将需要学习一些非常高级的东西。

2)由于Friend 2实际上不是用.NET语言编程的,因此是否有一种简单的方法来制作Java解决方案可以与此使用?他可以将"卡游戏"模块写为DLL,然后我们可以将其导入到我们的单独项目中?或者,他在J#?

中编写应用程序会更容易

再次,不要。您的事情比应该的要困难得多。您不能将JNI或JNA与Net Wiki一起使用,并且可以轻松地将它们与Java隔离。由于您都是编程的新手,因此选择共同的标准并坚持下去,您会更好。即使您不是编程的新手,也最好选择。

请注意,我已经完成了一些语言课程,但不是根据我必须选择的。使用标准输入和输出(套接字)作为文本传递,这些信息是简单的事务。我还使用JNA来创建可以调用C中创建的程序的JAVA程序,但是这再次充满了许多技巧和陷阱,我陷入了一些技巧和陷阱,如果可以避免,则不建议您使用此路线。另外,再次,您不能以这种方式与.NET语言进行通信。

更高级别的过程间通信的其他选项包括使用远程过程调用库,其中有很多,但也将为您的程序添加其他不需要的复杂性。

最新更新