我总是这样调用事件
MyEvent?.Invoke(this, new MyEventArgs(someArg));
今天VS 2015告诉我这可以简化:
?
关于后一种方法的一些问题,我以前没见过:
.Invoke()
检查处理程序是否为空??.Invoke()
似乎很简单__> cd /Users/your_root_name/.android/avd
也是如此? 答案 0 :(得分:7)
据推测?在事件名称之后检查处理程序是否为空?
是。它是C#6中引入的空条件运算符。它在各种方面都很有用。
我已经使用了第一个例子多年,并意识到它可以防止竞争条件...大概第二个例子的
?.Invoke()
也是如此? (见问题#1)
是。基本上,它们是等价的。特别是,它不两次评估MyEvent
表达式。它会对它进行一次计算,然后如果结果为非null,则会在其上调用Invoke
。