Skip to content

Gendarme.Rules.Correctness.ReviewCastOnIntegerMultiplicationRule(git)

Sebastien Pouliot edited this page Mar 2, 2011 · 1 revision

ReviewCastOnIntegerMultiplicationRule

Assembly: Gendarme.Rules.Correctness
Version: git

Description

This rule checks for integral multiply operations where the result is cast to a larger integral type. It's safer instead to cast an operand to the larger type to minimize the chance of overflow.

Examples

Bad example:

public long Bad (int a, int b)
{
    // e.g. Bad (Int32.MaxInt, Int32.MaxInt) == 1
    return a * b;
}

Good example:

public long Good (int a, int b)
{
    // e.g. Good (Int32.MaxInt, Int32.MaxInt) == 4611686014132420609
    return (long) a * b;
}

Notes

  • This rule is available since Gendarme 2.2

Source code

You can browse the latest source code of this rule on github.com

Clone this wiki locally