lambda 表达式语法与 LambdaExpression 类

2024-03-24

这行代码尝试将 lambda 表达式分配给LambaExpression http://msdn.microsoft.com/en-us/library/system.linq.expressions.lambdaexpression.aspx类型化变量,

LambdaExpression expr = n => n;

它失败并显示编译错误消息:

无法转换 lambda 要键入的表达式 'System.Linq.Expressions.LambdaExpression' 因为它不是代表 类型

所以它需要是委托类型。从概念上讲,这对我来说似乎很奇怪,因为我可以构建一个LambdaExpression像这样使用工厂方法的实例。

工厂拉姆达来自 MSDN http://msdn.microsoft.com/en-us/library/system.linq.expressions.lambdaexpression.aspx

LambdaExpression lambdaExpr = Expression.Lambda(
    Expression.Add(
        paramExpr,
        Expression.Constant(1)
    ),
    new List<ParameterExpression>() { paramExpr }
);

这不是委托类型。

这让我们想知道为什么 lambda 到 Lambda 表达式不能工作?


嗯,这个does work:

Expression<Func<int, int>> exp = n => n;
LambdaExpression lambda = exp;

注意Expression<TDelegate> http://msdn.microsoft.com/en-us/library/bb335710.aspx源自于LambdaExpression.

我认为你不能只使用的原因LambdaExpression因为类型是 那么类型n(在你的例子中)无法推断。

考虑一下您也不能这样做的事实,原因基本相同:

// What is this? An Action? A ThreadStart? What?
Delegate d = () => Console.WriteLine("Hi!");

而你can做这个:

Action a = () => Console.WriteLine("Hi!");
Delegate d = a;

本质上是一样的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lambda 表达式语法与 LambdaExpression 类 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 静态只读字符串数组

    我在我的 Web 应用程序中使用静态只读字符串数组 基本上数组有错误代码 我将所有类似的错误代码保存在一个数组中并检查该数组 而不是检查不同常量字符串中的每个错误代码 like public static readonly string m
  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 使用 lambda 表达式注册类型

    我想知道如何在 UnityContainer 中实现这样的功能 container RegisterType
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • 在Linux中,找不到框架“.NETFramework,Version=v4.5”的参考程序集

    我已经设置了 Visual studio 来在我的 Ubuntu 机器上编译 C 代码 我将工作区 我的代码加载到 VS 我可以看到以下错误 The reference assemblies for framework NETFramewo
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File

随机推荐

  • 当 std::cerr 上打印某些内容时设置 gdb 断点

    我使用 qt creator 作为 gdb 的 IDE 和前端 当对 std cerr 变量调用operator 如何在 std cerr 设置断点 你的问题没有意义 std cerr是一个全球性的variable 您只能在函数上设置断点
  • 所选 bean 不在同一模块或企业应用程序中

    只是瞎猜 但我是否需要本地接口来调用远程无状态 EJB 当我尝试通过 Netbeans 远程调用 bean 时 Netbeans 不允许对此 Bean 进行远程调用或任何调用 为什么不 尝试手动完成 如下 jndi是什么global部署在
  • MSDeploy setParameter 不起作用

    我们正在尝试将 构建一次 随处部署 模型集成到我们的构建 部署系统中 MSDeploy 在这方面发挥了奇迹 通过 CRC 校验和比较和 大部分情况下 当使用参数化根据我们部署到的环境来更改应用程序 web configs 时 它也同样有效
  • 如何在 DataFrame 中选择两个值之间的行

    我正在尝试修改 DataFramedf仅包含列中的值的行closing price介于 99 和 101 之间 并尝试使用下面的代码来执行此操作 但是 我收到错误 ValueError 系列的真值不明确 使用 a empty a bool
  • 如何使用 API 网关调用 sagemaker 推理端点

    我正在尝试使用 AWS Integration 从 api 网关调用 sagemaker 推理端点 我不想在 API 网关和 sagemaker 运行时之间使用 lamdba 我跟着这个doc https docs aws amazon c
  • Adobe AIR 执行程序

    我想按下 Adob e AIR 应用程序中的按钮并执行某些已安装的程序 例如 我有一个名为 Start Winamp 的按钮 当按下这个按钮时 它应该直接启动 Winamp exe 我不想执行一些命令行 我只想启动一个 exe 或者 是同一
  • CSS - 将文本添加到样式表中的样式

    我还没有找到任何文档 所以我认为这是不可行的 但值得一问 我可以在样式表内指定样式内的实际文本吗 我有几个地方在相同的 div 位置使用相同的文本 我没有使用 javascript 或在 div 中重新输入相同的文本 而是在考虑样式是否可以
  • Json.NET - 防止重新序列化已经序列化的属性[重复]

    这个问题已经存在了 在 ASP NET Web API 应用程序中 我正在使用的一些模型包含一块仅在客户端有用的临时 JSON 在服务器上 它只是作为字符串进出关系数据库 性能是关键 在服务器端处理 JSON 字符串似乎根本没有意义 所以在
  • 无法在不指定完整路径的情况下运行 python 脚本

    您好 我正在尝试直接从终端运行 python 脚本 为此 我已将包含代码的目录添加到我的环境 PATH 变量中 但是 当我指定完整路径时我可以运行 但当我只调用脚本时则不能运行 base DS home user abc my codes
  • 侦听器拒绝连接并出现以下错误:ORA-12505,TNS:侦听器当前不知道连接描述符中给出的 SID

    从昨天开始我的数据库已经工作一年多了 突然间 我无法再连接 我得到的错误是 Status Failure Test failed Listener refused the connection with the following erro
  • .NET 委托是否用于事件?

    我有点困惑 我知道委托就像函数指针 它们用于将函数作为参数传递到方法中 这如何融入事件模型 Calling myButton OnClick new 当事件发生时 内部是否只是将方法 函数作为参数传递 并且所有订阅者都收到有关该事件的通知
  • 有没有简单的方法可以在目标 c 中对一位数字的浮点数进行四舍五入?

    是的 你是对的 当然 这是一个重复的问题 在标记我的问题之前 请继续阅读下面的内容 我想四舍五入一个浮点值 即 56 6748939 to 56 7 56 45678 to 56 5 56 234589 to 56 2 实际上它可以是任意数
  • onBeforeRequest 侦听器中的异步调用替代方案

    对于我的 Chrome 扩展程序 我希望具有阻止请求功能 我有一个很大的域列表 10000 我正在考虑使用 IndexedDb 来存储域列表 但据我现在了解 不可能进行异步调用并在请求处理程序中返回结果 我最初的计划是 function r
  • iframe 被认为是“不好的做法”吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在此过程中 我发现使用 iframe 是 不好的做法 这是真的 使用它们的优点 缺点是什么 与所有技术一样 它也有其优点和缺点 如果您使用 if
  • 向 ExpandoObject 添加与字符串同名的属性

    有没有办法向 ExpandoObject 添加与字符串值同名的属性 例如 如果我有 string propName ProductNumber dynamic obj new System Dynamic ExpandoObject 我可以
  • 如何选择每个部门的最高工资,包括赚取该工资的员工[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 给定一个表Employees EMP
  • 如何使用 Strawberry 在 Windows 上编译 Perl 模块?

    这更多的是一个公开的讨论和结论 而不是一个真正的问题 希望它能在某个时候帮助别人 我正在寻找如何在断开互联网的服务器上制作 Perl 模块 否则答案很简单 使用cpan 所以我唯一的选择就是直接在服务器上手动编译从互联网 CPAN或其他 下
  • 递归地循环遍历对象(树)

    有没有办法 在 jQuery 或 JavaScript 中 循环遍历每个对象及其子对象和孙对象等等 如果是这样 我也能读到他们的名字吗 Example foo bar child grand greatgrand and so on 所以循
  • 如何生成 Facebook Marketing API 访问令牌以在 Windows 应用程序中使用它

    我使用 Facebook 作为广告平台在 Apple 和 Google 商店上推广我的应用程序 我想制作一个 Windows 服务 该服务将下载有关我运行一个 Facebook 的营销活动的广告状态的每日报告 最好使用 60 天的令牌 或某
  • lambda 表达式语法与 LambdaExpression 类

    这行代码尝试将 lambda 表达式分配给LambaExpression http msdn microsoft com en us library system linq expressions lambdaexpression aspx