我一直在寻找在调用方法(或方法链)时处理空对象的最佳选择。
检查 if 条件是我们常见的做法:
if ( customObject != null ) {
customObject.callMe();
}
可以通过使用扩展方法进一步改进:
Program customObject = null;
if (customObject.NotNull()) {
customObject.CallMe();
}
public static bool NotNull(this object o) {
return o == null;
}
请注意:我通常忽略!来自我的编程实践。因此,明智的做法是说扩展方法对我来说很好。
但是,当涉及到方法链时,处理变得非常复杂。
customObject.CallMe().CallMe2() ex...
您如何认为它可以在 C# 中处理,以便CallMe
仅在customObject
不为 null时CallMe2
调用,并且仅在CallMe
返回非 null 对象时调用。
当然我可以使用 If 条件或三元运算符。但是,我想知道 vNext, C#5.0 是否可以提供一些东西。