gpt4 book ai didi

c# - 如何使用表达式树创建一个空委托(delegate)?

转载 作者:太空狗 更新时间:2023-10-29 21:23:57 24 4
gpt4 key购买 nike

使用 anonymous methods从 C# 2.0 开始,您可以创建空委托(delegate)。

public event EventHandler SomeEvent = delegate {};
public event Action OtherEvent = delegate {};

这是例如useful to prevent having to do the null check when invoking events .

如何使用 Expression Trees 创建相同的行为?

我现在看到的唯一可能的选择是使用 Expression.Lambda() ,但据我所知,这需要大量额外的工作。

最佳答案

表达式树,就其用途而言,在原始设计中始终具有主体表达式而不是语句。

在 C# 3 中,根本无法表达主体为空语句 block 的表达式树。最近,表达式树库已扩展为允许语句,但 C# 语义分析规则没有更新以利用它;您仍然无法将语句 lambda 转换为表达式树。

关于c# - 如何使用表达式树创建一个空委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9823457/

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