【发布时间】:2014-04-10 11:47:43
【问题描述】:
我正在使用此解决方案在我的代码中执行链式空值检查
Cleaner way to do a null check in C#?
我只是想知道我们不能这样。
bool returnValue = Helper.IsNull(nullPerson.contact.address.city);
这样不是更干净吗?
我试过写这样一个通用函数
public static bool IsNull<T>(this T rootObj)
{
var visitor = new IsNullExpressionVisitor();
//...
//...
}
但后来我陷入了如何从这个 rootObject 中表达出来。
【问题讨论】:
-
我认为没有任何方法可以使用该签名。但是你可能有更好的运气传递一个 lambda。像这样:IsNull(() => nullPerson.contact.address.city)。
-
根据你使用的dotnet版本,可以使用静态类Contractmsdn.microsoft.com/en-us/library/…
-
如果存在空值,您希望链中的返回值
nullPerson.contact.address.city是什么? -
@TonyHopkinson 很明显 OP 想要处理他的一个链为空,但你为什么称之为“移动/隐藏真正的问题”? 真正的问题是什么?