我有一个用户对象,我有一个名为userID的变量。
我想测试两件事:
只有当用户不为null时才必须进行第二次测试,否则我会遇到运行时错误。
我想知道是否可以在同一行上测试两者,如下所示:
return ((user == null) && (user.UserID != userID))
但是如上所述编码不起作用,因为当用户为空时我有运行时错误。
感谢。
答案 0 :(得分:0)
是的,您可以在一行中进行检查,但您应该使用or
条件
return ((user == null) || (user.UserID != userID))
答案 1 :(得分:0)
我假设C#并且当用户为空时你想要一个布尔值== true OR userid与user.UserID不同。所以答案是:
return ((user == null) || (user.UserID != userID));
OR逻辑运算符在从最左边的一个开始发现真实条件时立即停止对表达式的求值。
在这种情况下,如果user为null,则得到结果(True),并且不需要测试第二个条件,因此可以避免空引用异常。
答案 2 :(得分:-1)
我认为最容易阅读的方式是:
如果您想要 true ,如果user为null:
return user == null || user.UserID != userID
如果满足第一个条件 (这是真的),那么它将不会检查第二个条件。
如果您想要 false ,如果user为null:
return user != null && user.UserID != userID
如果第一个条件是不符合(它是假的),那么它将不会检查第二个条件。 &&
和||
=)