gpt4 book ai didi

c# - 快照将事件处理程序值作为 C# 中的方法参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:28:30 24 4
gpt4 key购买 nike

从这里question (和 others )有这个在调用之前对事件处理程序值进行快照的示例:

var tmp = _myEventHandler;
if(tmp != null) {
tmp(sender, args);
}

但是,如果我将事件处理程序和参数传递给一个函数,它会做同样的事情吗?

protected void Invoke(MyEventHandler handler, MyEventArgs args)
{
if (handler != null)
handler(this, args);
}

我会说是的,但在考虑之后我不知道它是否相同 - 比如优化过程是否可以内联此函数并删除快照变量?

最佳答案

它确实做了同样的事情。该代码只是检查事件处理程序是否为非空,因此可用于引发。此代码对于字段/参数/本地没有什么不同。 C# 编译器或 JITer 不能以删除临时文件的方式内联它,因为它会改变程序的语义。

关于c# - 快照将事件处理程序值作为 C# 中的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8962359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com