我用的是unity 5.5 具体的话是unity 5.5.2 f1 。我的试验来看,unity 5.5 支持的是 .net 2.0 框架也即c#2.0。不过,它包括了 c# 3.0 一些特性,我试验了确证的有 lambda 表达式 和 LINQ。4.0 版本的特性没有验证。
我查了国外的资料有个人发帖子说,unity5.5 默认支持的是 .net2.0/3.5 框架集。他的具体版本是 unity5.5 0b4。
见图
也有很多人说 unity5.5支持的是c#4.0。
因此,我得出的结论是 unity 5.5 的 Mono 编辑器 支持 c#4.0,但是 unity5.5 运行框架 是 .net 2.0 的大部,加上 .net 3.0 和 .net 3.5 的各一部分的集合,不支持 .net 4.0。
说成大白话就是 :可以在unity5.5里写c#4.0的语言特性,但是引用的类和库,.net 2.0里面的随便用, .net 3.0 和 .net 3.5里面的新特性只能用一部分。.net 4.0以上的不能用。
unity 5.6 的发布说明中没有说更新语言。那么unity 5.6 也是同样。
在搞清楚这个问题之前,我都买了 c#2.0 和 c# 5.0 的书,唯唯没有买 c# 4.0 的书。
希望看到这个博客的初学者不要走我的弯路。