gpt4 book ai didi

C# Action lambda 限制

转载 作者:可可西里 更新时间:2023-11-01 03:05:24 25 4
gpt4 key购买 nike

为什么这个 lambda 表达式不能编译?

Action a = () => throw new InvalidOperationException();

猜想很好,但我非常感谢对 C# 语言规范或其他文档的引用。

是的,我知道以下内容是有效的并且可以编译:

Action a = () => { throw new InvalidOperationException(); };

this blog post 中描述了我将使用类似内容的上下文.

最佳答案

嗯。我有一个答案,但不是很好。

我不相信有“throw”表达式。有一个 throw 语句,但不仅仅是一个表达式。将其与“Console.WriteLine()”进行比较,后者是一个 void 类型的方法调用表达式。

与此类似,您不能将 switch 语句或 if 语句等单独作为 lambda 的主体。您只能有一个表达式或一个 block (第 7.14 节)。

这有什么帮助吗?

关于C# Action lambda 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/254273/

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