IF C内的变量声明#

时间:2011-10-24 09:14:53

标签: c#

看看以下代码:

if( down == null || down.GetFace() != Face.None || down.GetFace() != Face.Partial )
{  
    // I called GetFace() two times
    // How can i avoid to call it two times, and still putting inside that if
}  

谢谢!

2 个答案:

答案 0 :(得分:2)

为了更易于维护和表达,首先将空检查分开作为例外情况

然后将结果输入变量并检查它。

if(down == null)
  // Some exceptional case .. return or throw exception

var result =  down.GetFace();
if(result == Face.None || result != Face.Parial)
  // Do your code here

答案 1 :(得分:1)

重构方法:

private bool IsFaceNoneOrPartial(Down down)
{
   var face = down.GetFace();

   return face != Face.None || face != Face.Partial;
}

// Your code is now:
if( down == null || IsFaceNoneOrPartial(down))
{

}