コードインスペクション: Math.Abs() の引数は常に非負です
このインスペクションは、非負の引数があるため冗長になる可能性のある Math.Abs() の使用を報告します。
Math.Abs() の目的は、負になる可能性のある数を、負でない数値に変換することです。 引数が負でないことがわかっている場合は、 Math.Abs() 呼び出しを引数の値に安全に置き換えることができます。
変数またはパラメーターの値が常に非負であることを判断するために、ReSharper はデフォルトで有効化されている 整数演算分析 に依存します。
以下の例では、次の理由により、 Math.Abs() の 3 つの使用箇所すべてが報告されます。
p1は、対応する契約を追加する JetBrains.Annotations の[NonNegativeValue]属性でマークされています。p2はuint型であり、負でない値のみを含むことができます。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));
}
2026 年 6 月 12 日