#c#
#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
}
Спасибо!
Комментарии:
1. Лучше задавать вопрос как часть тела вопроса, а не как комментарий в вашем примере кода. Люди могут пропустить это.
Ответ №1:
Чтобы быть более удобным в обслуживании и выразительным, сначала отделите нулевую проверку как исключительный случай
затем преобразуйте результат в переменную и проверьте ее.
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
Ответ №2:
Рефакторинг метода:
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))
{
}