0
select new
{
Selected = (cvf != null && cvf.Deleted==false)
}
即使cvf为空,上述语句也会检查cvf.Deleted。然后它会抛出一个无效的对象引用错误。Linq和匿名类型
我该如何解决这个问题?
select new
{
Selected = (cvf != null && cvf.Deleted==false)
}
即使cvf为空,上述语句也会检查cvf.Deleted。然后它会抛出一个无效的对象引用错误。Linq和匿名类型
我该如何解决这个问题?
可能还有其他事情发生,因为&&
将short-circuit evaluate。也就是说,试试这个:
select new
{
Selected = cvf != null
? !cvf.Deleted
: false
};
无论你如何看待'(cvf!= null && cvf.Deleted == false)'应该总是评估为'true'或'false',并且不会抛出NRE。但我同意,这个故事还有更多... – CodingGorilla
无效的对象引用或空引用? – CodingGorilla
未将对象引用设置为对象的实例 – developer747
您有没有在cvf类型上定义!=运算符?如果你这样做,也许它没有正确实施?我会建议查看抛出异常的堆栈跟踪。 – Lukazoid