如何对动态对象执行空检查?
伪代码:
public void Main() {
dynamic dynamicObject = 33;
if(true) { // Arbitrary logic
dynamicObject = null;
}
Method(dynamicObject);
}
public void Method(dynamic param) {
// TODO: check if the content of 'param' is equal to null
}
Run Code Online (Sandbox Code Playgroud) 我有这个Linq对象查询:
var result = Users.Where(u => u.Address.Country.Code == 12)
Run Code Online (Sandbox Code Playgroud)
如果Address或Country为null,我会收到异常.
为什么这个查询不会检查地址是否为空并且只是在该地址之后?这样我就不需要写这个可怕的查询了:
var result = Users.Where(u => u.Address != null &&
u.Address.Country != null &&
u.Address.Country.Code == 12)
Run Code Online (Sandbox Code Playgroud)
在Linq to SQL中,第一个查询将完成工作(当然是出于其他原因).
是一种避免linq中的"空检查"对象的方法吗?