在C#和Objective-C之间维护公共代码的好方法是什么?

时间:2013-06-01 20:15:37

标签: c# .net objective-c cocoa code-sharing

我目前正在为一些小型应用程序进行原型设计,这些应用程序旨在在Mac和Windows上发布。当然,这意味着在Mac上使用Objective-C的Cocoa和在Windows上使用C#的.NET。不幸的是,由于这两种语言完全不同,因此我需要两次完成所有工作,因此处理4个应用程序更像是工作8。

在某种程度上,这是不可避免的,但我正在探索分享一些处理平台无关事物(计算,公式等)的常见代码/函数的方法。

我考虑过C / C ++,但由于它需要编译成DLL才能在C#中使用,所以看起来并不值得。

现在我正在使用像Lua这样的脚本语言,它显示出一些希望,但它并不是没有它的并发症。还有其他可能更好的方法吗?

3 个答案:

答案 0 :(得分:0)

一种方法是使用Mono,一个跨平台的开源开发框架。

http://www.mono-project.com

答案 1 :(得分:0)

您可以将C / C ++用作C#的DLL。 使用.NET互操作性和编组来从C#中使用C Dll非常容易。 事实上,这是我开发iPhone和WinPhone时的首选解决方案....

有关从C#调用C Dll的更多信息,请阅读MSDN,这个简单示例: http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx

答案 2 :(得分:0)

从技术上讲,您可以编写“托管C ++程序集”以在.NET应用程序中使用,并且可以将C ++直接混合到Objective-C应用程序中,但引用.NET Objects(myclass ^)所需的语法与您不同仍然最终没有分享。