c# - 为什么此代码会使Visual Studio 2015崩溃?



visual-studio visual-studio-2015 (1)

出于某种原因,即使在Visual Studio中将其键入C#文件也足以导致它立即崩溃。 为什么?

unsafe struct node {
    node*[] child;
}

当IDE开始为关键字等着色时,似乎会发生这种情况。

在TIO中尝试 csc.exe exited with code 1 这不是很有用。

虽然C#中的数组声明与C / C ++中的数组声明不同,但上面 看起来 应该完全有效。 为什么不是,为什么它会导致Visual Studio崩溃?

我的Visual Studio版本是14.0.23107。


这是 github.com/dotnet/roslyn/issues/24978 一个 github.com/dotnet/roslyn/issues/24978 。 此错误将影响使用Roslyn的任何Visual Studio版本。

如果我正确地解释了 VersionOf.net ,那么内置Roslyn的Visual Studio的第一个版本是2015年。在此之前,我 认为 它仅作为扩展名提供。 因此,Visual Studio 2013和之前应该不受影响。

它将在 里程碑16版本中 得到修复。 目前,该版本尚未安排。

因为这是Roslyn中的一个错误,所以你可以通过编辑和编译包含旧版Visual Studio中 unsafe struct 的代码来“绕过”它,这个版本早于Roslyn。 Visual Studio 2012应该可以工作。 然后,您可以在当前软件中使用生成的.DLL。

如果您自己从此 分支 构建Roslyn,则可以使用未经验证的修复程序。 修复是在 此提交中完成的





roslyn