由于某种原因,即使将其键入到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。
答案 0 :(得分:49)
这是known bug in Roslyn。此错误将影响使用Roslyn的任何Visual Studio版本。
如果我正确地解释了VersionOf.net,则内置Roslyn的Visual Studio的第一个版本是2015。在此之前,我认为只能作为扩展使用。因此,Visual Studio 2013及更早版本不受影响。
该问题将在milestone 16 release中修复。目前,该版本尚未安排。
由于这是Roslyn中的错误,因此您可以通过在Visual Studio的较早版本(早于Roslyn的版本)中编辑和编译包含unsafe struct
的代码来“解决”它。 Visual Studio 2012应该可以工作。然后,您可以在当前软件中使用生成的.DLL。
如果您从this branch构建Roslyn,则可以使用未经验证的修复程序。该修复程序是在this commit中进行的。