C#编译器错误?表达式中只写属性的对象初始值设定项语法崩溃csc您可能认为这是一个错误报告,但我很好奇我在这里是否大错特错,或者Eric或Microsoft的其他人是否有解释。更新这现在作为错误发布在MicrosoftConnect上。描述考虑以下类:classA{publicobjectB{set{}}}这里,AB是一个只写但其他方面很好的属性。现在,假设我们在表达式中分配它:Expressionexpr=()=>newA{B=newobject{}};此代码使C#编译器(3.5.30729.4926和4.0.30319.1)吐出内部编译器错误(地址013E213F处的0xc0000005):可能的罪魁祸首是“BIND”。和崩溃。然而,只需用构造函数(())替换对象初始化语法({})就可以解决问题。使用系统;使用System.Linq.Expressions;classTest{publicstaticvoidMain(){Expressionexpr=()=>newA{B=newobject{}};}}classA{publicobjectB{set{}}}(是的,我确实打了一个真实的项目。)我恐怕不是EricLippert(哦,但我可能很潇洒......),但是作为前VisualStudio语言对于仍然可以搜索源代码的人,我可以说两件事:每当您看到以“InternalCompilerError”开头的内容时,您肯定发现了一个错误。这就是存在错误的地方,无论是C#、VB还是C++编译器。就是“哦,反正事情出乎意料地出错了!”扔掉我们的手并挽救错误。除此之外,这绝对是应该报告的C#编译器中的错误。崩溃的代码假设当你对一个属性进行初始化时,它有一个可以看到的吸气剂,嘿,你猜怎么着?在这种情况下,不。奇怪的是,如果我将构造的类型更改为某种类型的“C”而不是“Object”,我不会崩溃,所以我猜这是堆栈中的失败(即代码永远不会得到)寻找财产获取者)。希望这可以帮助。这是我在网上找到的与该错误相关的内容由Microsoft于2010年3月9日上午10:58发布感谢大家的报告。我相信此问题已在RC后修复。问题是C#编译器在尝试报告错误或警告时崩溃。在少数情况下,我们看到警告报告LIB环境变量包含无效路径。为避免崩溃,请检查LIB环境变量是否包含有效路径。此致,EdMaurerVB和C#编译器开发经理C#学习教程:C#编译器错误?Expression中只写属性的对象初始化器语法导致csc崩溃所有内容分享,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: