本文介绍了(此== NULL)在C#!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于被固定在C#4中的错误,下面的程序打印真正。 (试着在LINQPad)

 无效的主要(){新的派生(); } 

类基地{
公共库(Func键<串GT; valueMaker){Console.WriteLine(valueMaker()); }
}
类派生:基{
串CheckNull(){回报?我是NULL+(这== NULL); }
公共派生():基座(()=> CheckNull()){}
}

在VS2008在Release模式,它抛出一个InvalidProgramException。 (在调试模式下,它工作正常)



在VS2010 Beta 2中,它不编译(我没有尝试测试版1);我了解到,艰难地



有没有其他办法让此== NULL 纯C#

解决方案

此观察已经张贴在计算器中的更早。



的的表示根据规范(第7.5.7),你不应该能够访问这个在这种情况下,并在C#3.0编译器有能力这样做是一个错误。 C#4.0编译器根据该规范行为正确(即使在Beta 1中,这是一个编译时错误):



这篇关于(此== NULL)在C#!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 09:53