c# - 将 `unsafe` 关键字应用于 C# 中的 lambda 表达式

标签 c# lambda callback keyword unsafe

为什么不能将 unsafe 关键字应用于 C# 中的 lambda 表达式?

这是我尝试过的:

using System;

public class Program
{
    public static void Main()
    {
        Action<int> a = unsafe i => Console.WriteLine(i);
    }
}

这是 fiddle :https://dotnetfiddle.net/nBI0dX .

这是我得到的错误:

Invalid expression term 'unsafe'

我仅出于学习目的需要它。我正在学习 .NET,看不出有什么理由禁止在 lambda 表达式之前使用 unsafe 关键字。所以,我很想知道为什么它可能被禁止。

最佳答案

考虑使用 local function相反,它有 some advantages通过 lambda 表达式并支持 unsafe 关键字:

using System;

public class Program
{
    public static void Main()
    {
        unsafe void a(int i) => Console.WriteLine(i);
    }
}

关于c# - 将 `unsafe` 关键字应用于 C# 中的 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60002299/

相关文章:

python - lambda 如何选择要返回的值

c# - 将 Expression<Func<T1,bool>> 动态转换为 Expression<Func<T2,bool>

javascript - 如何将现有回调 API 转换为 Promise?

java - Activity 到 Activity 回调监听器

c# - 为什么 DateTime.ParseExact 不能解析 DateTime 输出?

c# - 如何异步提交多条记录到数据库?

c++ - 当一个包含 lambda 的类型被分配时会发生什么?

c - 如何将用户数据传递给回调函数

c# - Rhino Mocks Restub 功能

c# - 唯一文件夹标识符