Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 797 Bytes

File metadata and controls

51 lines (38 loc) · 797 Bytes

GCop 172

"Remove the check for null. Instead use NullableFoo?.Invoke()"

Rule description

In C#, from version 6, the ?. expression can be used to simplify the code.

Example 1

public delegate void LogHandler(string message);
public event LogHandler Log;

protected void OnLog(string message)
{
    if (Log != null)
    {
        Log(message);
    }
}

should be 🡻

public delegate void LogHandler(string message);
public event LogHandler Log;

protected void OnLog(string message)
{
    Log?.Invoke(message);  
}

Example 2

public void OnXYZ(SomeEventArgs e)
{
    var evt = XYZ;
    if (evt != null)
        evt(sender, e);
}

should be 🡻

public void OnXYZ(SomeEventArgs e) => XYZ?.Invoke(sender, e);