有没有理由在引发之前将事件分配给局部变量?我经常看到类似下面的代码,想知道是否有任何理由为事件使用局部变量,而不仅仅是事件本身。在哪里?varhandler=OnQueryComplete;如果(处理程序!=null)处理程序(这个,新的RepositoryEventArgs(结果));是的,绝对-它使无效检查安全。如果您有://错误代码,请不要使用if(OnQueryComplete!=null){OnQueryComplete(this,...);然后最后一个订阅者可以在检查和调用之间取消订阅,从而导致NullReferenceException。这里有很多选项:您可能还想使用Interlocked来确保您获得变量的最新值以避免内存模型问题。有关此问题的更多讨论,请参阅我的博客文章(包括评论)。C#学习教程就这些了:有什么理由在提升之前将事件分配给局部变量吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
