public class EventBus<T>
{
[NotNull] // annotation not valid on this declaration type
private static event Action<T> Events;
static EventBus()
{
// we always have a do-nothing event handler so we don't have to worry about null checks and race conditions
Events += T => { };
}
正如评论中所见,我明确地不想处理到处检查事件的空值。这可以通过在构造时分配一个从不调用的默认无操作事件来解决。Resharper 不能自动解决这个问题也就不足为奇了,所以我想用 NotNull 注释对其进行注释。不幸的是,NotNull 似乎无法应用于事件,但 Resharper 会在我调用事件时毫不犹豫地警告我“可能的‘System.NullReferenceException’”。
如果 resharper 会注意到错误,应该可以通过注释来避免它。