2013-06-26 4 views
3
public bool CheckStuck(Paddle PaddleA) 
    { 
     if (PaddleA.Bounds.IntersectsWith(this.Bounds)) 
      return true; 
     else 
      return false; 
    } 

Я чувствую, что приведенный выше код в процедуре немного избыточен и задавался вопросом, есть ли способ сократить его до одного выражения. Извините, если мне не хватает чего-то очевидного.Как упростить оператор IF, который возвращает true или false?

В настоящий момент, если утверждение истинно, оно возвращает true и то же самое для false.

Итак, есть ли способ сократить его?

+4

как насчет просто вернуть PaddleA.Bounds.IntersectsWith (this.Bounds); – Inv3r53

+1

Может ли кто-нибудь объяснить downvotes? Хотя основной вопрос, я не думаю, что у него нет качества. – Uooo

+3

Что случилось с 'return !! PaddleA.Bounds.IntersectsWith (this.Bounds)? !! (parseInt ("14644", 10) === 14644): !! (parseFloat ("567.44", 10) === 436362346); '?? –

ответ

10
public bool CheckStuck(Paddle PaddleA) 
{ 
    return PaddleA.Bounds.IntersectsWith(this.Bounds) 
} 

Состояние после return оценивает либо True или False, так что нет необходимости в том, если/другое.

+0

Спасибо! Не могу поверить, что я об этом не думал. –

2

Вы всегда можете сократить Условный еще формы

if (condition) 
    return true; 
else 
    return false; 

в

return condition; 
1

Попробуйте это:

public bool CheckStuck(Paddle PaddleA) 
{ 
    return PaddleA.Bounds.IntersectsWith(this.Bounds); 
} 
0
public bool CheckStuck(Paddle PaddleA) 
{ 
    return PaddleA.Bounds.IntersectsWith(this.Bounds); 
} 
0
public bool CheckStuck(Paddle PaddleA) 
    { 
     return (PaddleA.Bounds.IntersectsWith(this.Bounds)); 
    } 

Или были вы ищете что-то еще?

0

ниже код должен работать:

public bool CheckStuck(Paddle PaddleA) { 
    // will return true or false 
    return PaddleA.Bounds.IntersectsWith(this.Bounds); 
}