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

Ori*_*ion 61 c# visual-studio roslyn visual-studio-2015

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

unsafe struct node {
    node*[] child;
}
Run Code Online (Sandbox Code Playgroud)

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

在TIO中试用它会发出一些csc.exe exited with code 1不太有用的东西.

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

我的Visual Studio版本是14.0.23107.

Amy*_*Amy 50

这是罗斯林的一个已知错误.此错误将影响使用Roslyn的任何Visual Studio版本.

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

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

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

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

  • 根据这一点,你有资格获得第3或第4步:https://meta.stackexchange.com/a/132704/382678介于真棒和传奇之间. (4认同)