C#不能在匿名方法、lambda表达式、查询表达式或本地函数中使用ref、Out或in参数

2023-05-16

报错信息

Error CS1628 C#不能在匿名方法、lambda表达式、查询表达式或本地函数中使用ref、Out或in参数

Error CS1628 Cannot use ref, out, or in parameter ‘xx’ inside an anonymous method, lambda expression, query expression, or local function

问题描述

下面问题会报这个错误。

static void test(out System.Drawing.Image[] bitmaps)
{
    int count = 10;

    bitmaps = new System.Drawing.Image[count];
    Parallel.For(0, count, (i) =>
    {
        bitmaps[i] = System.Drawing.Image.FromFile("2.bmp");
    });
}

解决方案

The code below will throw out this error. Because the change brought by the lambda expression (i)=>{...} only works in the function test.

因为lambda表示式(i)=>{...} 的作用域是test函数内。所以,它不能去修改test函数的带out,in,ref的参数

如果你直接将test函数里的out关键词去掉,就不会报错了。

但是,我就是要用out,ref,in关键词怎么办呢? 我需要用这个函数来传出运算结果啊

加个临时变量来过渡一下,就好了。 代码如下

static void test(out System.Drawing.Image[] bitmaps)
{
    int count = 10;

    System.Drawing.Image[] bitmapsTemp = new System.Drawing.Image[count];
    Parallel.For(0, count, (i) =>
    {
        bitmapsTemp[i] = System.Drawing.Image.FromFile("2.bmp");
    });
    bitmaps = bitmapsTemp;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#不能在匿名方法、lambda表达式、查询表达式或本地函数中使用ref、Out或in参数 的相关文章

  • Array.Sort 使用重要的比较函数

    考虑以下代码C 5 0 简而言之 p 289 int numbers 1 2 3 4 5 Array Sort numbers x y gt x 2 y 2 0 x 2 1 1 1 这给出了结果 3 5 1 2 4 我在纸上尝试了这个并得到
  • VS2010 中使用 lambda 参数捕获的 C++ 嵌套 lambda bug?

    我使用的是 Visual Studio 2010 它显然在 lambda 上有一些错误行为 并且有这个嵌套 lambda 其中内部 lambda 返回包装为 std function 的第二个 lambda 参见MSDN 上的 高阶 Lam
  • 绘图 Deedle 框架

    我有以下代码 let mychart frame GetAllSeries gt Seq iter fun key value gt Chart Line value Name key gt Chart Combine where fram
  • 在 C++11 中按值或引用使用 lambda 默认捕获的缺点?

    使用 lambda 默认按值捕获有哪些陷阱 或通过引用 在 C 11 中 我知道一些陷阱 例如 如果从 lambda 创建的闭包的生命周期超过了局部变量的生命周期 闭包中的引用将悬空 默认按值捕获有什么缺点吗 我认为你提到的悬空参考问题是主
  • 使用 lambda 内联过滤避免意外 null

    我有每个元素的列表 我想这样做 使用Java 8 disabledUsersOnLDAP stream forEach user gt usersRepository findEnabledByUsername user getUserNa
  • VB.NET:“语句 lambda 无法转换为表达式树”编译时错误

    为什么我可以执行以下操作 Dim qNodes As IQueryable Of XmlNode xDoc ChildNodes AsQueryable Dim test qNodes Where Function node True 尽管
  • 替换 lambda 表达式中的参数类型

    我正在尝试将 lambda 表达式中的参数类型从一种类型替换为另一种类型 我在 stackoverflow 上找到了其他答案 即this one https stackoverflow com questions 11159697 repl
  • 是否可以在 Lambda 表达式中包含 SqlFunctions.StringConvert?

    我一直在学习表达式并使用下面的代码添加针对数据库模型构建的表达式 EF4 ORACLE 而不是 SQL 这非常适合 Oracle 并允许我动态构建谓词 例如 CustomerId Contains 2 into f gt f Custome
  • 带层的 NodeJS Lambda - 如何防止打字稿在构建中包含层

    我正在用打字稿编写一个 NodeJs lambda 函数 它依赖于 Lambda 层才能工作 我在项目文件夹中创建了一个包含示例层的目录 然后使用 tsconfig 文件中的路径选项以便在本地测试它 然而 这工作得很好 当我构建代码来编译
  • 在 React 中使用“ref”作为数组

    当我尝试使用 Redux 在 React 中将输入引用为数组时 我遇到了一些问题 下面的代码将数组中的每一篇文章映射一个面板 var articles this props item array articles map article i
  • 使用 Java 谓词和 Lambda

    为什么下面的代码会返回Predicate
  • Razor 支持 lambda 表达式吗?

    Razor 视图引擎是否支持 lambda 表达式 匿名方法 我很难在 Razor 中表达以下内容 Model ToList ForEach i gt if i DealerName null
  • 托管 C++ 引用类

    任何好的网站或解释什么是ref class何时将一个类声明为 引用类 msdn上的解释对我来说还不够 基本类型 可选 一个基础类型 引用类或引用结构可以继承零个或多个托管接口以及零个或一个引用类型 值类或值结构只能从零个或多个托管接口继承
  • Python 用 lambda 函数封闭作用域变量

    我写了这个简单的代码 def makelist L for i in range 5 L append lambda x i x return L 好的 现在我打电话 mylist makelist 因为稍后调用嵌套函数时会查找封闭范围变量
  • 根据标准在多个需求之间分配数量

    我正在创建一个周期盘点表 表 1 将是用户输入 其中将放置找到的材料和数量 表 2 是盘点时的库存快照 我希望将找到的材料数量分配到表 2 上的数量中 直到表 1 的数量用完为止 按照从最新批次 日期代码 到最旧批次 先进先出 的顺序分配数
  • 使用 std::function 重载解析

    考虑这个代码示例 include
  • 中继命令和无参数执行方法

    我目前正在学习 WPF 和 MVVM 我想我已经了解了大部分内容及其工作原理 但我在使用 RelayCommand 或 DelegateCommand 时遇到了一些我不明白的问题 我认为这与代表的工作方式有关 请注意 下面的代码目前仅处于测
  • 在 lambda 中延迟初始化和缓存内部值的简洁方法

    首先用简单的方法让代码自己说话 int heavy calc needed to be called once sleep 7500000 years return 42 int main auto foo And cached for l
  • 列表过滤器内的 Java 8 lambda 列表

    示例 JSON id 1 products id 333 status Active id 222 status Inactive id 111 status Active id 2 products id 6 status Active
  • 如何从 pandas 数据框中的列中删除字符串值

    我正在尝试编写一些代码 以逗号分隔数据帧列中的字符串 因此它成为一个列表 并从该列表中删除某个字符串 如果存在 删除不需要的字符串后 我想再次以逗号加入列表元素 我的数据框如下所示 df Column1 Column2 0 a a b c

随机推荐