Null条件运算符为事件抛出空引用

Laz*_*sen 3 c# nullreferenceexception

据我所知,null条件运算符(?.)在运行下一位代码之前检查null,但在此代码中:

public delegate void EventArgs(object Sender, PlayerPage Page);
public event EventArgs PageChanged;
private PlayerPage _CurrentPage = PlayerPage.NoPage;
public PlayerPage CurrentPage
{
    get { return _CurrentPage; }
    set { _CurrentPage = value; PropertyChangedFire(); this?.PageChanged(this,value); }
}
Run Code Online (Sandbox Code Playgroud)

但是这个?.PageChanged(this,value); 抛出空引用异常

编辑:

哦......我多么愚蠢:)改为PageChanged?.Invoke(); 感谢您及时的回复

Jon*_*lis 12

您需要检查是否PageChanged为null.然后你可以召唤Invoke它来举起活动.

PageChanged?.Invoke(this,value);
Run Code Online (Sandbox Code Playgroud)

附注:这正是Resharper为C#6推荐的内容