首页 > 解决方案 > Visual Studio 2015 误报出关键字引用类型作为方法参数

问题描述

我在 Visual Studio 2015 中使用与 C# 的统一,每当我使用这样的东西时:

if (!NavMesh.SamplePosition(position, out NavMeshHit hit, 1f, NavMesh.AllAreas)) { return; }

或这个

if (!Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity)) { return; }

我收到一个编译时错误警告,RaycastHit hit或者NavMeshHit hit在那hit之后使用过的地方。如果我将其声明为局部变量,则错误消失

NavMeshHit hit;
if (!NavMesh.SamplePosition(position, out hit, 1f, NavMesh.AllAreas)) { return; }

RaycastHit hit;
if (!Physics.Raycast(ray, out hit, Mathf.Infinity)) { return; }

或者通过按下Ctrl + .然后Esc取消它,错误就会消失,即使它没有,它也会编译好并毫无问题地进入运行时。

有没有办法在visual studio中解决这个问题?

标签: c#unity3dvisual-studio-2015out

解决方案


这是 Visual Studio 2015 中不可用的 C# 7 功能,您必须升级到 2017 或忽略它。

编辑:最后使用了 Visual Studio Code,因为对我来说 Visual Studio 2017 太大了,50GB 与 2015 年相比只有 9GB


推荐阅读