【问题标题】:Why does Unity use .NET 2.0 when Mono supports .NET 3.5?当 Mono 支持 .NET 3.5 时,为什么 Unity 使用 .NET 2.0?
【发布时间】:2016-04-01 13:02:39
【问题描述】:

Unity 使用 Mono 来实现多平台兼容性。 因此,使用 .NET 4.0 或更高版本没有意义,因为 Mono 也不支持它们。

然而 Mono 确实支持 3.5,事实上它支持了它的大部分功能,所以我想知道,为什么 Unity 仍然使用将近十年前的 .NET 版本。

我了解大多数(如果不是全部)开发人员更喜欢稳定性和熟悉度而不是尖端技术。我只想知道这个决定的可能原因是什么。特别是因为后来的 .NET 版本引入了几个非常好的特性。 Compatibility reference for Unity.

【问题讨论】:

  • 大部分的改进。 Net 3.5 是 API 添加的。 Linq,任务,WPF,WCF。这些东西在统一中并不是非常有用,是吗?
  • Mono 也支持 .NET 4.0 和 4.5。
  • 我希望第一条评论是讽刺。

标签: c# .net unity3d mono


【解决方案1】:

根据this site,这与其他计算机的支持有关。大多数计算机将能够运行 .NET 2.0 但不能运行 3.5。它还运行 C# 4,我相信是 5,但绝对不是 C# 6。出于某种原因,它们有点落后。我认为这是因为升级所有内容几乎没有什么好处。

【讨论】:

  • 这实际上是因为他们在与 Xamarin 争夺许可(单运行时本身是 Xamarin 下的 LGPL),而不是因为更新没有什么好处。有巨大的好处。
  • Mono 运行时现在使用 MIT 许可证。
【解决方案2】:

.net 2.0 及其子集用于 apiCompatiblilty,据说它用于使用 3rd 方库,但您可以在代码中使用 .net 3.5 功能,正如您所说的那样,mono 支持它,例如 system.linq,尽管有对它有一些限制,例如某些名称空间不可用,例如: system.data , linq 对移动平台也有一些限制http://forum.unity3d.com/threads/to-linq-or-not-to-linq.223887/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 2016-01-06
    相关资源
    最近更新 更多