ReSharper 2025.3 ヘルプ

コード検査: Math.Abs() 引数は常に負ではありません

このインスペクションは、非負の引数があるため冗長になる可能性のある Math.Abs() の使用を報告します。

Math.Abs() の目的は、負になる可能性のある数を、負でない数値に変換することです。引数が負でないことがわかっている場合は、Math.Abs() 呼び出しを引数の値に安全に置き換えることができます。

変数またはパラメーターの値が常に非負であることを判断するために、ReSharper はデフォルトで有効になっている整数演算分析に依存します。

以下の例では、次の理由により、Math.Abs() の 3 つの使用箇所すべてが報告されます。

  • p1 は、対応する契約を追加する JetBrains.Annotations[NonNegativeValue] 属性でマークされています。

  • p2uint 型であり、負でない値のみを含むことができます。

  • p3 はソースコードで明示的にチェックされているため、負ではありません。

public void Test([NonNegativeValue] int p1, uint p2, int p3) { Console.WriteLine("Abs 1:" + Math.Abs(p1)); Console.WriteLine("Abs 2:" + Math.Abs(p2)); if (p3 < 0) return; Console.WriteLine("Abs 1:" + Math.Abs(p3)); }
2024 年 9 月 30 日

関連ページ:

コードインスペクション設定を構成する

設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...

整数値の分析 (積分演算)

ReSharper は、コード内の整数値のフローを追跡し、冗長または場合によっては誤ったステートメントを報告できます。すべての C# 整数数値型 — 、、、、 — をサポートし、次の問題について警告します。常にまたはに評価される関係 / 等式演算子、値をチェックする到達不能なケース、による乗算やの加算など、意味のない算術演算(リテラルまたは定数を除く): ReSharper は、のような式が意図的なものであると想定しています)、オーバーフローの可能性、による除算の可能性、メソッドの呼び出しで発生する可能...