私はコードを可能な限り最適化しようとしています。それは、私にとって、実行される計算の量を最小限に抑えることを意味します。私が持っています:
for (int i = 0; i < this.Entities.Count; i++)
{
if (this.Entities[i].Type == 2)
{
if (this.Entities[i].X > this.Bounds.Width + this.SideOffset || this.Entities[i].X < -this.SideOffset)
{
this.Entities.Remove(this.Entities[i]);
}
}
}
それを最適化するために、タイプチェック内に範囲外チェックをネストして、チェックが実行されたときにのみ実行されるようにしました。私の質問は、ifステートメントがC#でどのように処理されるかということです。すべての条件が関係なくチェックされますか、または両方のifステートメントを1つに入れて、それを効果的に同じように実行できますか(this.Entities [i] .Typeが2に等しくない場合、残りのifステートメントは実行されません)
2種類がありますAND
し、OR
C#では:
&
/|
は常に状態の両側をチェックします。
&演算子は、最初の演算子の値に関係なく、両方の演算子を評価します
&&
/||
左側のみを使用して最終結果を評価できる場合、右側はチェックされません。
条件付きAND演算子(&&)は、boolオペランドの論理ANDを実行しますが、必要な場合にのみ2番目のオペランドを評価します。
条件付きOR演算子(||)は、boolオペランドの論理ORを実行します。最初のオペランドがtrueと評価された場合、2番目のオペランドは評価されません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加