var objectA = new ObjectA();
var objectB = new ObjectB();
....
if(objectA!=null && objectB!=null){
//safely use objectA and objectB..
}
else{
if(objectA==null&&objectB!=null){
// safely use objectA but not objectB
}
if(objectA!=null&&objectB==null){
//safely use objectB but not objectA
}
if(obectA==null&& objectB==null){
// objects cannot be used.
}
}
我该如何简化这种情况?
答案 0 :(得分:1)
这似乎更容易跟随IMO
if(objectA != null){
if(objectB != null){
// safely use objectA or objectB
}
else{
// safely use objectA but not objectB
}
}
else if(objectB != null){
// safely use objectB but not objectA
else{
// do not use either
}
答案 1 :(得分:1)
由于您有四种可能感兴趣的案例,我会做一个简单的if-else if-else if-else
并避免任何不需要的嵌套。
if(objectA != null && objectB != null)
{
//safely use objectA and objectB..
}
else if(objectA == null && objectB == null)
{
// objects cannot be used.
}
else if(objectB == null)
{
//safely use objectA but not objectB
}
else
{
// safely use objectB but not objectA
}
另外,如果你知道哪种情况最有可能你应该把它放在第一位,那么第二种情况最有可能,依此类推。例如,如果您知道大部分时间null
和objectA
不太可能是null
而不是objectB
,那么您可以执行以下操作。
if(objectA != null && objectB != null)
{
//safely use objectA and objectB..
}
else if(objectA != null && objectB == null)
{
//safely use objectA but not objectB
}
else if(objectB != null)
{
// safely use objectB but not objectA
}
else
{
// objects cannot be used.
}
答案 2 :(得分:0)
试试这个
if (objectA != null && objectB != null)
{
//safely use objectA and objectB..
}
else
{
if (objectA == null && objectB != null)
{
// safely use objectA but not objectB
}
else if (objectA != null && objectB == null)
{
//safely use objectB but not objectA
}
else
{
// objects cannot be used.
}
}