You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将带返回值的匿名方法赋值给变量?

嘿,我来帮你理清楚这个问题~你的代码写法有问题,因为你混淆了「把匿名函数本身赋值给变量」和「把匿名函数执行后的返回值赋值给变量」这两种场景,而且语法上也不符合C#的规则。我分两种情况给你演示正确的写法:

场景1:把带返回值的匿名函数本身赋值给变量

如果你的需求是把这个匿名方法作为一个可调用的函数存储起来,后续再执行它,那变量的类型得是对应的委托类型,比如Func<byte[]>(这个预定义委托代表无输入参数、返回byte[]类型的方法)。

示例代码:

// 定义变量存储匿名函数,类型匹配委托
Func<byte[]> getByteArray = () => {
    // 这里可以写你的业务逻辑,比如数据处理、计算等
    Console.WriteLine("执行匿名函数的逻辑");
    return new byte[] { 0, 1, 2, 3 };
};

// 后续需要的时候调用这个函数,得到byte数组
byte[] V = getByteArray();
场景2:直接把匿名函数的返回值赋值给V变量

如果你的需求是立即执行匿名方法,并把返回结果直接存到V里,可以用括号包裹Lambda表达式后直接调用:

示例代码:

byte[] V = (() => {
    // 这里写你的逻辑代码
    return new byte[] { 0, 1, 2, 3 };
})();

为什么你的原代码出错?

你原来写的new byte[]() { //Some code here return new byte[]{0,1,2,3}; }是完全错误的语法:

  • new byte[]()这种写法不符合C#数组初始化规则,数组初始化不需要加括号;
  • 数组初始化器{ ... }里只能放元素值,不能写return语句,你把匿名方法的逻辑和数组初始化搞混了。

内容的提问来源于stack exchange,提问作者X Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 20:52:39