我一直在寻找调用方法(或方法链)时处理空对象的最佳选项。调用方法时处理空对象
这是我们共同的做法,以检查与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
返回非空对象。
当然我可以使用If条件或三元运算符。但是,我想知道vNext,C#5.0是否有一些东西可以提供。
以何种方式使用NotNull()是一种改进? – 2014-08-31 23:52:20
通过获取扩展方法来玩实际的情况,我可以控制我定义为Null因此有一个改进。 (我通常忽略!从我的编程实践中)。 – codebased 2014-09-01 00:00:43
至少如果您想查看[空对象模式](http://stackoverflow.com/questions/1178399/how-do-i-create-a-null-object-in-c-sharp) – Jonesopolis 2014-09-01 00:01:13