错误CS1644:无法使用功能“空传播运算符”,因为它不属于C#4.0语言规范

时间:2019-02-04 15:09:16

标签: c# unity3d ml-agent

我有Unity 2018.1.9f2,我下载了Unity ml代理并将文件夹添加到我的unity项目中。但是,当我尝试运行“ 3DBall”场景时,在控制台中出现此错误:

资产/ ml-agents-master / UnitySDK /资产/ML-Agents/Scripts/Brain.cs(79,25):错误CS1644:无法使用功能为null的传播运算符',因为它不属于C#4.0语言规范。当我双击它时,它将打开VS,并在brainBatcher?.SendBrainInfo(name, agentInfos);下划线。 当我将鼠标悬停在代码上时,它显示Feature 'null propagating operator' is not available in C# 4. Please use language version 6 or greater.

我试图从另一个类似的问题中回答:Unity Visual Studio C# version synchronization。因此,我使用unity-c-5.0-and-6.0-integration,但未显示该错误,但出现了150多个其他错误。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

确保将“播放器设置/脚本运行时版本”设置为.NET 4.x,而不是.NET 3.5

scripting runtime version

答案 1 :(得分:0)

为什么不只删除?

就我而言,以下更改即使使用.net 3.5框架也可以修复构建


Action<DeleteObjectsResponse, string> result;

// Change:

//result?.Invoke(null, responseObj.Exception.ToString());

// To:

if (result != null)
   result.Invoke(null, responseObj.Exception.ToString());