我喜欢对几乎所有东西都使用隐式类型,因为它简洁明了。但是,当我需要在单个语句周围包装 try...catch 块时,我必须打破隐式类型以确保变量具有定义的值。这是一个人为的假设示例:
var s = "abc";
// I want to avoid explicit typing here
IQueryable<ABC> result = null;
try {
result = GetData();
} catch (Exception ex) { }
if (result != null)
return result.Single().MyProperty;
else
return 0;
有没有一种方法可以调用GetData()
异常处理,但不必显式定义结果变量的类型?像GetData().NullOnException()
什么?