Skip to content

Files

Latest commit

 

History

History
30 lines (21 loc) · 824 Bytes

File metadata and controls

30 lines (21 loc) · 824 Bytes

Pattern: Missing use of ArgumentNullException

Issue: -

Description

Argument checks have a substantial impact on code size and often dominate the code for small functions and property setters. These checks prevent inlining and cause substantial instruction-cache pollution. Throw-helper methods such as ArgumentNullException.ThrowIfNull are simpler and more efficient than if blocks that construct a new exception instance.

Example of incorrect code:

void TestMethod(string arg)
{
    if (arg is null)
        throw new ArgumentNullException(nameof(arg));
}

Example of correct code:

void TestMethod(string arg)
{
    ArgumentNullException.ThrowIfNull(arg);
}

Further Reading