Visual Studio 2015 误报关键字引用类型作为方法参数
Visual Studio 2015 false alarm out keyword reference types as method arguments
我在 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 中解决这个问题?
这是 Visual Studio 2015 中不可用的 C# 7 功能,您必须升级到 2017 或忽略它。
编辑:最后使用 Visual Studio 代码,因为对我来说 Visual Studio 2017 年太大了,50GB,而 2015 年只有 9GB
我在 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 中解决这个问题?
这是 Visual Studio 2015 中不可用的 C# 7 功能,您必须升级到 2017 或忽略它。
编辑:最后使用 Visual Studio 代码,因为对我来说 Visual Studio 2017 年太大了,50GB,而 2015 年只有 9GB