创建匿名方法,将 returns 值赋给变量

Create Anonymous Method that returns a value to a variable

我正在开发一个 C# 项目,我想使用一个匿名方法或函数 returns 一个变量的值。

我试过了:

    byte[] V;
    V= new byte[]()
    {
        //Some code here
        return new byte[]{0,1,2,3};
        
    }

但是我遇到了错误

如何使用匿名方法或函数将值 returns 赋给 V 变量?

我只想知道如何使用匿名方法将 returns 值赋给变量。

有几个机会,各有优缺点。

  1. 一个代表

    byte[] V;
    V= new Func<byte[]>(() => ()
    {
        //Some code here
        return new byte[]{0,1,2,3};    
    }();
    
  2. 一个局部函数

    void DoSomething()
    {
        byte[] V;
    
        byte[]MyLocalFunction()
        {
            //Some code here
            return new byte[]{0,1,2,3};
        }
        V = MyLocalFunction();
    }
    
  3. 具有名称的普通私有方法

我个人最喜欢3,因为你有一个清楚描述该方法应该做什么的名称。 2 也有一个名称,实际上在您的 class 中编译为私有静态方法,因此它看起来也很合适。 1 只会让您的代码难以理解和阅读。有 use-caes,但在大多数情况下我不建议使用它。

因此,如果您认为某个成员中的某些逻辑应该以某种方式提取,您可以给它起一个名字。这样你以后可以很容易地将它提取到另一个class,如果你需要的话。