将“不安全”关键字应用于 C# 中的 lambda 表达式

Apply an `unsafe` keyword to a lambda expression in C#

为什么不能将 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 关键字。所以,我很想知道为什么它会被禁止。

考虑在 lambda 表达式上使用 local function instead, which has some advantages 并支持 unsafe 关键字:

using System;

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