コード検査: Math.Abs() 引数は常に負ではありません
このインスペクションは、非負の引数があるため冗長になる可能性のある Math.Abs() の使用を報告します。
Math.Abs() の目的は、負になる可能性のある数を、負でない数値に変換することです。引数が負でないことがわかっている場合は、Math.Abs() 呼び出しを引数の値に安全に置き換えることができます。
変数またはパラメーターの値が常に非負であることを判断するために、ReSharper はデフォルトで有効になっている整数演算分析に依存します。
以下の例では、次の理由により、Math.Abs() の 3 つの使用箇所すべてが報告されます。
p1は、対応する契約を追加する JetBrains.Annotations の[NonNegativeValue]属性でマークされています。p2はuint型であり、負でない値のみを含むことができます。p3はソースコードで明示的にチェックされているため、負ではありません。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
整数値の分析 (積分演算)
ReSharper は、コード内の整数値のフローを追跡し、冗長または場合によっては誤ったステートメントを報告できます。すべての C# 整数数値型 — 、、、、 — をサポートし、次の問題について警告します。常にまたはに評価される関係 / 等式演算子、値をチェックする到達不能なケース、による乗算やの加算など、意味のない算術演算(リテラルまたは定数を除く): ReSharper は、のような式が意図的なものであると想定しています)、オーバーフローの可能性、による除算の可能性、メソッドの呼び出しで発生する可能...